Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Workaround for kylix debugger on kernels > 2.6.10

43 views
Skip to first unread message

Paulo Marques

unread,
Feb 17, 2006, 10:12:57 AM2/17/06
to

Hi, all

Me and Paulo Costa have been trying to find out why the kylix integrated
debugger hangs with recent kernels. You can follow the thread on LKML here:

http://lkml.org/lkml/2006/2/14/419

We've now been able to make the debugger work with any recent kernel (I
hope) using a stub that intercepts system calls made by the debugger, so
that it simulates the old kernel behavior.

I've posted the file with the stub to borland.public.attachments.

To make the debugger work:

- unzip the stub file
- place the ptrace_interposer.so in /usr/lib (for instance)
- do export "LD_PRELOAD=/usr/lib/ptrace_interposer.so" before calling
"startdelphi"

This works for us under both kernel 2.6.12 and 2.6.16-rc3. The debugger
doesn't hang anymore and works just fine.

I would like to know if this works for everyone, or if there are still
problems with this approach with some distributions.

Thanks for any feedback,

--
Paulo Marques - www.grupopie.com

theo

unread,
Feb 17, 2006, 10:30:00 AM2/17/06
to
Yep great! Thanks A LOT!!!!!!

2.6.13-15.7

zeljko

unread,
Feb 17, 2006, 2:29:00 PM2/17/06
to
> This works for us under both kernel 2.6.12 and 2.6.16-rc3. The debugger
> doesn't hang anymore and works just fine.

works fine here 2.6.12-1.1378_FC3smp :)
tnx guys :)

Andreas Hausladen

unread,
Feb 17, 2006, 2:31:47 PM2/17/06
to
Works greate under 2.6.13-15.7-smp (SUSE 10.0)

- Qt2Clx works (original)
- Qt3Clx works
- Libc.system() (pipe-problem) has no problem
- Debugging from executable through SharedObject and back works
- Debugging from exe through Package and back works


What do we need next?
- Binding Kylix against newer WineLib :-)


Regards,

Andreas Hausladen

Den Jean

unread,
Feb 17, 2006, 10:06:56 PM2/17/06
to
> I would like to know if this works for everyone, or if there are still
> problems with this approach with some distributions.

works fine on 2.6.12-12mdk (Mandrake/Mandriva 2006.0)

Thank you very much !!!

kind regards,

Den Jean

PS: export LD_ASSUME_KERNEL=2.4.1 should not be forgotten

Andreas Hausladen

unread,
Feb 17, 2006, 4:12:28 PM2/17/06
to
Den Jean wrote:

> PS: export LD_ASSUME_KERNEL=2.4.1 should not be forgotten

What Kylix developer hasn't exported this :-)


--
Regards,

Andreas Hausladen
(http://www.kylix-patch.de.vu - unofficial Kylix 3 patches)
(http://andy.jgknet.de/blog)

Jens Nixdorf

unread,
Feb 17, 2006, 4:56:14 PM2/17/06
to
Paulo Marques schrubte am Freitag 17 Februar 2006 16:12:

> Thanks for any feedback,

Doesnt tested yet, nevertheless i want to thank you very very much for your
work. Its very good to have some motivated and skilled people around.

kind regards, Jens

--
Die oben angegebene Adresse ist OK, wird aber nicht gelesen. Wenn direkter
Mailkontakt gewünscht wird, bitte spamtrap gegen jens<punkt>nixdorf
austauschen. Danke.

zeljko

unread,
Feb 18, 2006, 6:29:59 AM2/18/06
to
Andreas Hausladen wrote:

and bplvisualclx-6.9 against qt3 ;)

siegfriedn

unread,
Feb 20, 2006, 5:09:31 PM2/20/06
to
Paulo Marques wrote:
> > I would like to know if this works for everyone, or if there are still
> > problems with this approach with some distributions.
> >

I followed the instruction, but I get the following errors when I turn
the internal debugger on and run a default application.

I am running a valilla Suse 10 with the latest online updates.

The following error messages are displayed.

Debugger Internal Error XDB-543
Debugger Internal Error UTI-541
Debugger Internal Error XDB-550
Debugger Internal Error XDB-632
Debugger Internal Error UTI-269 and then it gets stuck here.

-----------

Additional error message

ERROR: id.so: object '/usr/lib/ptrace_interposer.so' from LD_PRELOAD
cannot be preloaded: ignored.

--------
I also tried with recompiling with the mk script
-------

This is my startdelphi script

export LD_PRELOAD=/usr/lib/ptrace_interposer.so
export LD_ASSUME_KERNEL=2.4.1

KYDEF_LOCALE="en_US"
LC_ALL_IS_C1="The LC_ALL environment variable is set to C. Kylix cannot
start with this setting."
LC_ALL_IS_C2="Defaulting LC_ALL to"

# END STRING TABLE

if [ -z "$LANG" ]; then
LANG=$KYDEF_LOCALE
export LANG
fi

if [ "$LC_ALL" = "C" ]; then
echo "$LC_ALL_IS_C1"
echo "$LC_ALL_IS_C2 $KYDEF_LOCALE."
LC_ALL=$KYDEF_LOCALE
export LC_ALL
fi

export LANG=en_US
..etc

---------

Thanks,
Siegs

Paulo Marques

unread,
Feb 20, 2006, 6:39:14 PM2/20/06
to

siegfriedn wrote:
> Paulo Marques wrote:
>
>>>I would like to know if this works for everyone, or if there are still
>>>problems with this approach with some distributions.
>
> I followed the instruction, but I get the following errors when I turn
> the internal debugger on and run a default application.
>
> I am running a valilla Suse 10 with the latest online updates.

Andreas Hausladen is also using Suse10 and it works for him, so you're probably doing something different.

> The following error messages are displayed.
>
> Debugger Internal Error XDB-543
> Debugger Internal Error UTI-541
> Debugger Internal Error XDB-550
> Debugger Internal Error XDB-632
> Debugger Internal Error UTI-269 and then it gets stuck here.

These should be just symptoms. See below.

> Additional error message
>
> ERROR: id.so: object '/usr/lib/ptrace_interposer.so' from LD_PRELOAD
> cannot be preloaded: ignored.

This is the real problem. If the library isn't getting loaded, then it probably isn't doing much ;)

There are several things we need to know to help you find the problem:

- what is your exact kernel version? (cat /proc/version)

- did the "Debugger Internal Error"'s already appear before installing ptrace_interposer?

- is ptrace_interposer.so marked executable and is it on /usr/lib?


One other thing that you might try is to do:

export LD_PRELOAD=/usr/lib/ptrace_interposer.so:$LD_PRELOAD

so that any existing LD_PRELOAD configuration that Suse might have can be kept.

Just one more thing: your error report says "ERROR: id.so:... ". This should be "ld.so". Did you copy the error by hand? Was there just one error or several errors with the same message?

There is still a chance that the stub might not work under different conditions / configurations, but I'm not sure this is the case here. He need more info to figure out what's going on.

--
Paulo Marques

Jens Nixdorf

unread,
Feb 21, 2006, 5:20:54 AM2/21/06
to
siegfriedn schrubte am Montag 20 Februar 2006 23:09:

> I am running a valilla Suse 10 with the latest online updates.
>

What does this mean? Are you running a vanilla kernel or a suse kernel?

SiegfriedN

unread,
Feb 21, 2006, 5:25:04 AM2/21/06
to
Jens Nixdorf wrote:
> What does this mean? Are you running a vanilla kernel or a suse kernel?

I am using the default kernel that is installed by SUSE. I have not
applied any patches.

I will confirm tonight, but it is the same as Theo's i.e.

2.6.13-15.7-default

Thanks,

Siegs

SiegfriedN

unread,
Feb 21, 2006, 5:41:03 AM2/21/06
to
Paulo Marques wrote:

> Andreas Hausladen is also using Suse10 and it works for him, so you're probably doing something different.

And for Theo as well, so it should logically work for me too.

>
>>The following error messages are displayed.
>>

>>Debugger Internal Error ...


>
> These should be just symptoms. See below.

I thought so, I only upgraded to SUSE 10 a few days ago with SUSE 9.3
the Kylix debugger did not display any error messages it just hung, thus
these messages were new to me.

>>ERROR: id.so: object '/usr/lib/ptrace_interposer.so' from LD_PRELOAD
>>cannot be preloaded: ignored.
>
> This is the real problem. If the library isn't getting loaded, then it probably isn't doing much ;)

True

> There are several things we need to know to help you find the problem:
>
> - what is your exact kernel version? (cat /proc/version)

2.6.13-15.7-default (SUSE kernel)

>
> - did the "Debugger Internal Error"'s already appear before installing ptrace_interposer?

I tried without doing the 'export LD_PRELOAD..' and got the same
messages, so they most likely have nothing to do with ptrace_interposer.so.

> - is ptrace_interposer.so marked executable and is it on /usr/lib?

can confirm tonight (should be)

>
> One other thing that you might try is to do:
>
> export LD_PRELOAD=/usr/lib/ptrace_interposer.so:$LD_PRELOAD
>
> so that any existing LD_PRELOAD configuration that Suse might have can be kept.

understand, although there was no setting of LD_PRELOAD i.e. echo
$LD_PRELOAD was blank in my user shell before as I tried to do it via
the shell.

> Just one more thing: your error report says "ERROR: id.so:... ". This should be "ld.so". Did you copy the error by hand? Was there just one error or several errors with the same message?

typo sorry, yes, ld.so

I saw 3 of the same message in a shell screen.

Could it have something to do with ld.so? not sure what this lib is for.

> There is still a chance that the stub might not work under different conditions / configurations, but I'm not sure this is the case here. He need more info to figure out what's going on.

I will go through it again from scratch and try again tonight and report
back here.

Thanks for the help. :)

Siegs

theo

unread,
Feb 21, 2006, 6:49:21 AM2/21/06
to
SiegfriedN schrieb:

>
> I am using the default kernel that is installed by SUSE. I have not
> applied any patches.
>
> I will confirm tonight, but it is the same as Theo's i.e.
>
> 2.6.13-15.7-default
>

I've patched mine last night and have a 2.6.13-15.8-default now. ;-)
But still no problems with Kylix.

> I only upgraded to SUSE 10 a few days ago with SUSE 9.3

One possible difference here: Did you install "over" 9.3 or on a fresh
partition?

zeljko

unread,
Feb 21, 2006, 8:59:28 AM2/21/06
to
siegfriedn wrote:

> Paulo Marques wrote:
>> > I would like to know if this works for everyone, or if there are still
>> > problems with this approach with some distributions.
>> >
>
> I followed the instruction, but I get the following errors when I turn
> the internal debugger on and run a default application.
>
> I am running a valilla Suse 10 with the latest online updates.
>
> The following error messages are displayed.
>
> Debugger Internal Error XDB-543
> Debugger Internal Error UTI-541
> Debugger Internal Error XDB-550
> Debugger Internal Error XDB-632
> Debugger Internal Error UTI-269 and then it gets stuck here.

I've had such problem with stk16 kernel, just recompile ptrace_interposer.c
against your kernel and it should work.
(there's script called mk).

SiegfriedN

unread,
Feb 21, 2006, 9:06:17 AM2/21/06
to
zeljko wrote:
>
> I've had such problem with stk16 kernel, just recompile ptrace_interposer.c
> against your kernel and it should work.
> (there's script called mk).

Thanks, I tried that, but will do again it all again tonight.
I need to make sure the ptrace_interposer.so is executable after the
compile.

Cheers,

Siegs

SiegfriedN

unread,
Feb 21, 2006, 9:04:08 AM2/21/06
to
theo wrote:
>
> One possible difference here: Did you install "over" 9.3 or on a fresh
> partition?

It was a clean re-install- I only kept /home intact..

I will experiment more tonight.

Thanks,

Siegs

Den Jean

unread,
Feb 21, 2006, 6:21:37 PM2/21/06
to
Paulo Marques wrote:

> I would like to know if this works for everyone, or if there are still
> problems with this approach with some distributions.
>

The debugger works fine,
but code browsing (ctr-clicking on a unit or procedure)
does not work on new kernels.


Jens Nixdorf

unread,
Feb 21, 2006, 3:58:22 PM2/21/06
to
SiegfriedN schrubte am Dienstag 21 Februar 2006 15:04:

> It was a clean re-install- I only kept /home intact..

And your kylix-installation is in your Home-directory or is it systemwide
(in /usr/local)?

siegfriedn

unread,
Feb 21, 2006, 4:28:54 PM2/21/06
to
Jens Nixdorf wrote:
> And your kylix-installation is in your Home-directory or is it systemwide
> (in /usr/local)?

/usr/local/kylix3

I reinstalled Kylix from scratch as well and then applied the unofficial
patch k3patchesnc.3.9.tar.bz2. Kylix installed under root.

Siegs

Lionel Reynaud

unread,
Feb 21, 2006, 4:10:06 PM2/21/06
to
Very great news ! Many thanks !

is the C++ part works ??

Regards,
Lionel

"Paulo Marques" <pmar...@grupopie.com> a écrit dans le message de news:
43f5...@newsgroups.borland.com...

siegfriedn

unread,
Feb 21, 2006, 5:16:29 PM2/21/06
to
Paulo Marques wrote:
>> ERROR: id.so: object '/usr/lib/ptrace_interposer.so' from LD_PRELOAD
>> cannot be preloaded: ignored.
>
> This is the real problem. If the library isn't getting loaded, then it probably isn't doing much ;)

I have established that I only get this error when I actually delete
ptrace_interposer.so thus I must assume that it IS actually loaded and
something else is preventing it from working..

Siegs

Alex Brainman

unread,
Feb 21, 2006, 9:29:46 PM2/21/06
to
siegfriedn wrote:

> I followed the instruction, but I get the following errors when I turn
> the internal debugger on and run a default application.
>
> I am running a valilla Suse 10 with the latest online updates.
>
> The following error messages are displayed.
>
> Debugger Internal Error XDB-543
> Debugger Internal Error UTI-541
> Debugger Internal Error XDB-550
> Debugger Internal Error XDB-632
> Debugger Internal Error UTI-269 and then it gets stuck here.
>

I had the same problem, but after recompiling ptrace_interposer.so it's
gone away.

Another happy user on:

sos root # uname -a

Linux sos 2.6.11-gentoo-r6 #1 SMP Fri Apr 15 12:39:07 EST 2005 i686
Intel(R) Xeon(TM) CPU 1.80GHz GenuineIntel GNU/Linux


Thank you Paulo. It just shows, anything is possible; you just have to
keep your mind open.


Alex

Andreas Hausladen

unread,
Feb 22, 2006, 4:02:37 AM2/22/06
to
Lionel Reynaud wrote:

> is the C++ part works ??

Compiler: Yes
Linker: On my system it crashes.

Lionel Reynaud

unread,
Feb 22, 2006, 4:12:55 AM2/22/06
to
Hi Andreas,

>> is the C++ part works ??
>
> Compiler: Yes
> Linker: On my system it crashes.
>

So we always have trouble with ilink. I read somewhere that you try to use
ldd in place of ilink. Did you find a good issue ?

Regards,
Lionel

Andreas Hausladen

unread,
Feb 22, 2006, 4:39:03 AM2/22/06
to
Lionel Reynaud wrote:

> So we always have trouble with ilink. I read somewhere that you try to
> use ldd in place of ilink. Did you find a good issue ?

I only wrote that it meight be possible to use ldd but I haven't tried it,
yet.

theo

unread,
Feb 22, 2006, 5:48:48 AM2/22/06
to

>> So we always have trouble with ilink. I read somewhere that you try to
>> use ldd in place of ilink. Did you find a good issue ?
>
> I only wrote that it meight be possible to use ldd but I haven't tried it,
> yet.
>
>

One "d" too many, right?

ldd - print shared library dependencies
ld - the GNU linker

Andreas Hausladen

unread,
Feb 22, 2006, 6:00:28 AM2/22/06
to
theo wrote:

> ldd - print shared library dependencies
> ld - the GNU linker

And I always asked me why the printer started to output strange letters
when I wanted to link an application :-)

Paulo Marques

unread,
Feb 22, 2006, 7:33:20 AM2/22/06
to

Ok, then just to clarify: if the library isn't loaded for some reason
you get on the console:

"ERROR: ld.so: object '/usr/lib/ptrace_interposer.so' from LD_PRELOAD
cannot be preloaded: ignored."

and the debugger just hangs.

If it is loaded you get dialog messages saying:

Debugger Internal Error XDB-543
Debugger Internal Error UTI-541

...

and it gets stuck too.

If this is the case, then this is a real problem with the interposer not
working properly with your setup.

Is the code you're trying to debug multi-threaded?

I've uploaded a new version (completely untested, because I don't have a
Kylix setup at hand right now) to borland.public.attachments.

Can you try it out and see if it fixes it for you?

This one has a proper "Makefile" so you just need to run "make" to build it.

--
Paulo Marques

theo

unread,
Feb 22, 2006, 11:25:43 AM2/22/06
to

>
> The debugger works fine,
> but code browsing (ctr-clicking on a unit or procedure)
> does not work on new kernels.
>
>

?? I can't confirm this

theo

unread,
Feb 22, 2006, 11:27:45 AM2/22/06
to
Andreas Hausladen schrieb:

>
> And I always asked me why the printer started to output strange letters
> when I wanted to link an application :-)
>
>

But I told you: Always turn off the printer when linking! ;-)

siegfriedn

unread,
Feb 22, 2006, 4:09:07 PM2/22/06
to
Paulo Marques wrote:
..
> and it gets stuck too.
>
> If this is the case, then this is a real problem with the interposer not
> working properly with your setup.

SUSE 10 fails..
Could be a lot of variables! <g>

I have installed SUSE 10 again on another machine (which came with the
Linux Format Magazine - it would be interesting to know which version of
SUSE 10 the others are using..) completely from scratch without online
updates and installed kylix3 enterprise from the borland CD.

I downloaded the latest version of ptrace_interposer from the
attachments group and compiled and setup the startdelphi script.

Same problem, but with different messages, but I was able to do a
Run-Reset from within the ide.

---------

Suse 9.3 prof (which came from a Linux Magazine) works!

I installed ptrace_interposer on antother machine that had SUSE 9.3 prof
on and it worked perfectly! At least I can use this one to debug for now :)

Next test would be to try the SUSE 10 that came with the Linux
Magazine.. you never know..

> Is the code you're trying to debug multi-threaded?

No, just the basic default kylix New Application..

> I've uploaded a new version (completely untested, because I don't have a
> Kylix setup at hand right now) to borland.public.attachments.

Works with SUSE 9.3, but not with 'my' SUSE 10 setup


>
> This one has a proper "Makefile" so you just need to run "make" to build
> it.

I could not use 'make Makefile' nor 'make ./Makefile'. I just made
Makefile executable and it compiled ok. I had to run the second line in
the script on it's own since an error message was displayed.
'ptrace_interposer.so :: command not found' just to be sure.

Thanks for the help so far :)

Siegs

siegfriedn

unread,
Feb 22, 2006, 5:50:35 PM2/22/06
to
for the record. SUSE 10 from the Linux Magazine (has no gcc !) gives the
same result as the Linux Format SUSE 10..

Paulo Marques

unread,
Feb 23, 2006, 7:55:44 AM2/23/06
to
siegfriedn wrote:
> Paulo Marques wrote:
> ...

> SUSE 10 fails..
> Could be a lot of variables! <g>
> [...]

> Same problem, but with different messages, but I was able to do a
> Run-Reset from within the ide.

This doesn't give much info as to why it is happening...

> Suse 9.3 prof (which came from a Linux Magazine) works!
>
> I installed ptrace_interposer on antother machine that had SUSE 9.3 prof
> on and it worked perfectly! At least I can use this one to debug for now :)
>
> Next test would be to try the SUSE 10 that came with the Linux
> Magazine.. you never know..

Since there are other Suse 10's working there is a good chance that this
migth work...

>>Is the code you're trying to debug multi-threaded?
>
> No, just the basic default kylix New Application..

Ok, one other datapoint: is your processor hyperthreaded / multi-core?
If it is, does it change anything to disable this in the BIOS?

>>I've uploaded a new version (completely untested, because I don't have a
>>Kylix setup at hand right now) to borland.public.attachments.
>
> Works with SUSE 9.3, but not with 'my' SUSE 10 setup

At least now is not completely untested. Since noone else complained I
assume that it works for other people too.

>>This one has a proper "Makefile" so you just need to run "make" to build
>>it.
>
> I could not use 'make Makefile' nor 'make ./Makefile'.

No, no. You just run "make". The default name for the makefile is
"Makefile" so it should just work.

To give make a different filename to work with you use "make -f
<filename>". "man" is your friend (*) :)

> I just made
> Makefile executable and it compiled ok. I had to run the second line in
> the script on it's own since an error message was displayed.
> 'ptrace_interposer.so :: command not found' just to be sure.

Please try to compile it using "make" only.

> Thanks for the help so far :)

No, thank you for your help debugging this ;)

It will be really hard to debug this without having a setup that shows
the problem.

Do you think it would be possible for me to open an ssh session in your
box and do some debugging while "talking" to you using an instant
messenger or IRC?

--
Paulo Marques

(*) specially using kde, where you can just do Alt-F2 and type
"man:make" to see the makefile in a HTML-like format with hyperlinks and
stuff :)

John Kelly

unread,
Feb 23, 2006, 5:16:10 PM2/23/06
to

For the record, I was getting the exact same errors as siegfreidn with
the first version of your code. The second version posted on the 22nd
fixed it for me. Thanks very much and well done!

My system is Suse 10 and 'cat /proc/version' says
Linux version 2.6.13-15-smp (geeko@buildhost) (gcc version 4.0.2
20050901 (prerelease) (SUSE Linux)) #1 SMP Tue Sep 13 14:56:15 UTC 2005

The PC is a P4 with Hyperthreading. (I tried it with HT off with no
difference)

My Kylix is Kylix3 OE with all available Borland patches and AH's 3.8.1
patch.

Thanks again.

JohnK

siegfriedn

unread,
Feb 23, 2006, 5:43:28 PM2/23/06
to
Paulo Marques wrote:
>
> Please try to compile it using "make" only.
>

tried it with 'make -f Makefile' with make same result.

> Do you think it would be possible for me to open an ssh session in your
> box and do some debugging while "talking" to you using an instant
> messenger or IRC?

I will contact you about the details..

Thanks,

Siegs

Paulo Marques

unread,
Feb 24, 2006, 7:10:08 AM2/24/06
to
John Kelly wrote:
> [...]

> For the record, I was getting the exact same errors as siegfreidn with
> the first version of your code. The second version posted on the 22nd
> fixed it for me. Thanks very much and well done!

Thanks for the feedback.

I've been able to reproduce the problem on a test system here, so I'll
try to figure out exactly what's going on.

It seems that the stub is still very fragile. Things like compiling with
-O2 or -O0 make it work / not work.

Maybe the debugger is really using threads and the data space is shared
between them and the tricks done to keep the pid's that are being single
stepped must be done on per-thread data instead of global data. I really
can't say for sure at this point what exactly is happening, so maybe it
is something completely different.

As soon as I have a version that works on all my setups I'll post it again.

I want to thank everyone who tested the patch and gave such enthusiastic
feedback :)

--
Paulo Marques

siegfriedn

unread,
Feb 24, 2006, 1:58:33 PM2/24/06
to
Paulo Marques wrote:
> It seems that the stub is still very fragile. Things like compiling with
> -O2 or -O0 make it work / not work.

Yes, -O0 works on the SUSE 10 machine I set-up from scratch.

It makes no difference on my main SUSE 10 development machine..
Dell Inspiron 9300, Intel Pentium M 1.73

Hamid Kachkachi

unread,
Feb 25, 2006, 4:20:59 PM2/25/06
to
After using ptrace3.tar.gz as indicated in your last post, Delphi starts
fine (except for the fonts), but upon compiling (a simple button on the
interface), I get the errors

Debugger Internal Error XEV-390
Debugger Internal Error XPR-444
Debugger Internal Error XPR-543

and then nothing more happens.

doing ./startdelphi > output.txt and then Ctl-C produces an empty file.

Cheers,
Hamid
P.S. What about startbcb?


Paulo Marques

unread,
Feb 25, 2006, 3:56:42 PM2/25/06
to

Hamid Kachkachi <hamid.k...@physique.uvsq.fr> wrote:
>[...]

>After using ptrace3.tar.gz as indicated in your last post, Delphi starts
>fine (except for the fonts), but upon compiling (a simple button on the
>interface), I get the errors
>
>Debugger Internal Error XEV-390
>Debugger Internal Error XPR-444
>Debugger Internal Error XPR-543
>
>and then nothing more happens.
>
>doing ./startdelphi > output.txt and then Ctl-C produces an empty file.

You probably forgot to uncomment the "#define DEBUG" and recompiling before running "./startdelphi > output.txt". This _must_ produce some output.

Please try to grab that output, because it is crucial to figure out what's going on.

>P.S. What about startbcb?

I personally don't use the C++ version (although I program more in C++ than Delphi), so I really can't say. From other posts it seems the linker still has problems, though.

--
Paulo Marques

Hamid Kachkachi

unread,
Feb 25, 2006, 5:02:00 PM2/25/06
to
Sorry, but I did uncomment the "#define DEBUG", but the output is still
empty. I don't understand what's going on.
cheers,
Hamid

Paulo Marques

unread,
Feb 25, 2006, 4:33:19 PM2/25/06
to

Hamid Kachkachi <hamid.k...@physique.uvsq.fr> wrote:
>[...]
>Sorry, but I did uncomment the "#define DEBUG", but the output is still
>empty. I don't understand what's going on.

Never mind... I just found a new bug and posted a new version. Please test with that one.

--
Paulo Marques

Hamid Kachkachi

unread,
Feb 25, 2006, 5:56:19 PM2/25/06
to
Sorry to deceive you again, but doesn't work with ptrace4 either.
Ok, I don't want to use up your time, so forget it, I'll wait until
things are ironed out.
I'll have to use C++Builder under windows in the meantime.

Many thanks for your endeavour.
Hamid

P.S. I've tried with both SuSE 10.0 and ubuntu/kubuntu 5.10. I can read
here and there that the problem of kylix3/SuSE10.0 has been solved but
for me it's still fighting...just frustrating.

Den Jean

unread,
Feb 28, 2006, 6:28:36 PM2/28/06
to
theo wrote:

I downloaded Suse 10 and in Suse 10 indeed
everything works (code browsing + debugging via ptrace_interposer.so)

but in Mandriva 2006 code browsing does not work.

Does anyone have similar problem on another distro (Fedora ?, Redhat ? ...)

How to replicate:

startdelphi
file -> new -> application
in editor ctrl+left click on word "Types" in the uses clause of Unit1.pas.

This does not open the unit Types.
The cursor temporarily goes to hourglass (background parsing)
but the browsing does not work.

source /usr/kylix3/bin/kylixpath
strace -ff -o dada.pid /usr/kylix/bin/delphi

gives alot of output, but no clue :-)


kind regards,

Den Jean

Den Jean

unread,
Mar 2, 2006, 8:30:01 PM3/2/06
to
Den Jean wrote:

> I downloaded Suse 10 and in Suse 10 indeed
> everything works (code browsing + debugging via ptrace_interposer.so)
>
> but in Mandriva 2006 code browsing does not work.
>

with echo 1 > /proc/sys/vm/legacy_va_layout
it now also works in Mandriva 2006.0 (Mandrake)

so everything works fine now in Mandriva (debugging,code browsing)
For mysql you need to install libmysqlclient-10 (get it from Mandrake 9.1)

kind regards,
Den Jean


theo

unread,
Mar 2, 2006, 8:09:49 PM3/2/06
to
Den Jean schrieb:

>
> with echo 1 > /proc/sys/vm/legacy_va_layout
> it now also works in Mandriva 2006.0 (Mandrake)
>
> so everything works fine now in Mandriva (debugging,code browsing)
> For mysql you need to install libmysqlclient-10 (get it from Mandrake 9.1)
>

Could you complete the page
http://www.theo.ch/kylix/suse10.html
for Mandriva and send it to me?

But I won't test it myself. ;-)

Den Jean

unread,
Mar 3, 2006, 8:22:04 PM3/3/06
to
theo wrote:

> Could you complete the page
> http://www.theo.ch/kylix/suse10.html
> for Mandriva and send it to me?
>

#all as root

#edit startdelpi
vi `which startdelphi`
#Add to the existing export lines
#(at least before the last line)
export LD_ASSUME_KERNEL=2.4.21
export LD_PRELOAD=/usr/lib/ptrace_interposer.so
#copy ptrace_interpose.so /usr/lib

#edit sysctl.conf
vi /etc/sysctl.conf
#Add this line at the end:
vm.legacy_va_layout=1
#you need to reboot for this config setting to take effect
#or you can do this manually on the commandline
#but unlike the config setting, it is not permanent
echo 1 > /proc/sys/vm/legacy_va_layout
#you can verify this setting by doing
cat /proc/sys/vm/legacy_va_layout
#it should return 1

Den Jean

unread,
Mar 3, 2006, 8:34:43 PM3/3/06
to
theo wrote:

>
> But I won't test it myself. ;-)

For Suse 10 I have some remarks, you can test yourself :-)

1) LANG must be set
Even if you just use language "en" you still need to do
export LANG=en_US


2) LC_CTYPE must be set correctly
When working in a root login ('su -' or just actually logged in as root)
LC_CTYPE is not set correctly in Suse
export LC_CTYPE=en_US

If you do not do this, the font get very small or just disappear and
the forms of the ide get extremely large.

If you ran kylix like this and than make the fix with export blabla,
the next time your layout me be disturbed because kylix tried to save the
broken form positions. Just delete delphi96rc
rm ~/.borland/delphi69rc


3) MySQL:
mysql: we did not manage to get libmysqlclient-10 compiled on suse,
but just copying the Mandrake files and making the version links just worked

# cat install.sh
#!bin/bash
cp libmysqlclient.so.10.0.0 /usr/lib
cp libmysqlclient_r.so.10.0.0 /usr/lib
ln -sf /usr/lib/libmysqlclient.so.10.0.0 /usr/lib/libmysqlclient.so.10
ln -sf /usr/lib/libmysqlclient_r.so.10.0.0 /usr/lib/libmysqlclient_r.so.10


4) /proc/sys/vm/legacy_va_layout ?
This is not set in Suse10, though everything seems to
work, maybe if later you still discover problems in Suse with Kylix,
you may try it aswell. Googling for wine legacy_va_layout or
legacy_va_layout linux games reveals alot.

kind regards,

Den Jean

Andreas Hausladen

unread,
Mar 3, 2006, 5:46:45 PM3/3/06
to
Lionel Reynaud wrote:

> Very great news ! Many thanks !


>
> is the C++ part works ??
>

> Regards,
> Lionel

I recently found this information (from the winehq)

before:

0x08000000 ... binary code
0x08xxxxxx ... brk area
0x40000000 ... start of mmap, new mmaps go after old ones
0xbfxxxxxx ... stack

after:

0x08000000 ... binary code
0x08xxxxxx ... brk area
0xbfxxxxxx ... _end_ of all mmaps, new mmaps go below old ones
0xbfyyyyyy ... stack

And my ilink "debugging" showed that it crashes because of a mmap call
with some calculation (if I remember correctly). So the change from
top-down to bottom-up for the mmap allocations could be the problem for
the latest ilink problems.

Lionel Reynaud

unread,
Mar 4, 2006, 5:46:16 AM3/4/06
to
Thanks Andreas for this new information. We progress !
But i don't know how to use this information ;)
I am more a "end user" than a "hacker" :)

Regards,
Lionel

"Andreas Hausladen" <AndreasDO...@gObviousToBeRemovedmx.de> a écrit
dans le message de news: 4408...@newsgroups.borland.com...

theo

unread,
Mar 5, 2006, 1:15:26 PM3/5/06
to
Thanks

I've updated the page on: http://www.theo.ch/kylix/suse10.html
with your report.

Perger Attila

unread,
Apr 24, 2006, 12:43:55 PM4/24/06
to
Paulo Marques írta:
>
> Hi, all
>
> Me and Paulo Costa have been trying to find out why the kylix integrated
> debugger hangs with recent kernels. You can follow the thread on LKML here:
>
> http://lkml.org/lkml/2006/2/14/419
>
> We've now been able to make the debugger work with any recent kernel (I
> hope) using a stub that intercepts system calls made by the debugger, so
> that it simulates the old kernel behavior.
>
> I've posted the file with the stub to borland.public.attachments.
>
> To make the debugger work:
>
> - unzip the stub file
> - place the ptrace_interposer.so in /usr/lib (for instance)
> - do export "LD_PRELOAD=/usr/lib/ptrace_interposer.so" before calling
> "startdelphi"
>
> This works for us under both kernel 2.6.12 and 2.6.16-rc3. The debugger
> doesn't hang anymore and works just fine.
>
> I would like to know if this works for everyone, or if there are still
> problems with this approach with some distributions.
>
> Thanks for any feedback,
>
> --
> Paulo Marques - www.grupopie.com

Hello,

I have some problem to compile this PATCH under FC4. Can you help me?


1. BUG: <linux/user.h> does not exist. Sad
[aperger@ati02 ptrace4]$ make
gcc -W -Wall -O2 -o ptrace_interposer.o -fPIC -c ptrace_interposer.c
ptrace_interposer.c:13:24: error: linux/user.h: Nincs ilyen fájl vagy
könyvtár
ptrace_interposer.c: In function ‘ptrace’:
ptrace_interposer.c:117: error: dereferencing pointer to incomplete type
ptrace_interposer.c:118: error: dereferencing pointer to incomplete type
ptrace_interposer.c:119: error: storage size of ‘tmp_regs’ isn’t known
ptrace_interposer.c:121: error: dereferencing pointer to incomplete type
ptrace_interposer.c:121: error: dereferencing pointer to incomplete type
ptrace_interposer.c:119: warning: unused variable ‘tmp_regs’
ptrace_interposer.c:135: error: dereferencing pointer to incomplete type
ptrace_interposer.c:139: error: dereferencing pointer to incomplete type
make: *** [ptrace_interposer.so] Error 1


OK. I remame "/usr/include/linux" to "/usr/include/linux_orig" and I
link my actual kernel source "/usr/src/linux/include/linux" to the
original place as "/usr/include/linux". Unfortunaltelly I get the
following error:

2. BUG Error from <sys/ptrace.h> file ???
gcc -W -Wall -O2 -o ptrace_interposer.o -fPIC -c ptrace_interposer.c
In file included from ptrace_interposer.c:16:
/usr/include/sys/ptrace.h:33: error: syntax error before numeric constant
/usr/include/sys/ptrace.h:49: error: syntax error before numeric constant
/usr/include/sys/ptrace.h:61: error: syntax error before numeric constant
make: *** [ptrace_interposer.so] Error 1

Any idea to compile? Or do you have a binary which is working under FC4
- 2.6.16-2069?

Thanks for the HELP!

Attila Perger

Perger Attila

unread,
Apr 24, 2006, 12:50:15 PM4/24/06
to
zeljko írta:

>> This works for us under both kernel 2.6.12 and 2.6.16-rc3. The debugger
>> doesn't hang anymore and works just fine.
>
> works fine here 2.6.12-1.1378_FC3smp :)
> tnx guys :)
>
Hi

I can not complie this PATCH under FC4, I have an own kernel 2.6.16-2069
+ ACPI patch.

http://andy.jgknet.de/oss/kylix/Forum/viewtopic.php?t=237

Can you send me your binary? Or any help? Idea?

THANKS FOR THE HELP.

Attila Perger

Perger Attila

unread,
Apr 26, 2006, 5:59:31 AM4/26/06
to Perger Attila
Perger Attila írta:

Hi All,


I can fix the compilation problem. I should reorder the list of include
files in "ptrace_interpose.c" :
OLD:

*********************
#include <stdarg.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <dlfcn.h>
#include <stdio.h>
#include <linux/user.h>
#include <linux/unistd.h>
#include <sys/types.h>
#include <sys/ptrace.h>
*********************

NEW:
**********************
#include <stdarg.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <dlfcn.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/ptrace.h>
#include <linux/user.h>
#include <linux/unistd.h>
**********************

and I should use exactly the same LD_ASSUME_KERNEL = 2.4.1 as you
(if it was 2.4.21 it can not work!!!)


ThanX for this stuff!!!!

Attila


Kylix 3 Professional + Fedora Core 4 - Kernel 2.6.16.-1.2069 + ACPI patch

0 new messages