[yocto] Can't enable reverse debugging

Khem Raj raj.khem at gmail.com
Mon Dec 12 11:54:06 PST 2016


> On Dec 12, 2016, at 11:12 AM, Bryan Evenson <bevenson at melinkcorp.com> wrote:
> 
> Khem,
> 
>> -----Original Message-----
>> From: Khem Raj [mailto:raj.khem at gmail.com]
>> Sent: Monday, December 12, 2016 12:48 PM
>> To: Bryan Evenson <bevenson at melinkcorp.com>
>> Cc: yocto at yoctoproject.org
>> Subject: Re: [yocto] Can't enable reverse debugging
>> 
>> 
>>> On Dec 12, 2016, at 6:59 AM, Bryan Evenson <bevenson at melinkcorp.com>
>> wrote:
>>> 
>>> Khem,
>>> 
>>>> -----Original Message-----
>>>> From: Khem Raj [mailto:raj.khem at gmail.com]
>>>> Sent: Saturday, December 10, 2016 4:26 PM
>>>> To: Bryan Evenson <bevenson at melinkcorp.com>
>>>> Cc: yocto at yoctoproject.org
>>>> Subject: Re: [yocto] Can't enable reverse debugging
>>>> 
>>>> On Fri, Dec 9, 2016 at 8:43 AM, Bryan Evenson
>>>> <bevenson at melinkcorp.com>
>>>> wrote:
>>>>> I tried a few other things, see below.
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: yocto-bounces at yoctoproject.org [mailto:yocto-
>>>>>> bounces at yoctoproject.org] On Behalf Of Bryan Evenson
>>>>>> Sent: Thursday, December 08, 2016 2:50 PM
>>>>>> To: yocto at yoctoproject.org
>>>>>> Subject: [yocto] Can't enable reverse debugging
>>>>>> 
>>>>>> I'm on poky/dizzy and I'm getting a segementation fault in my
>>>>>> application that I think may be related to a buffer overflow.  I'm
>>>>>> using the Eclipse
>>>> plug-in
>>>>>> (on Eclipse Kepler) to debug on the hardware with GDB.  I'm trying
>>>>>> to
>>>> enable
>>>>>> reverse debugging but I have not had any success and I'm looking
>>>>>> for
>>>> some
>>>>>> help.
>>>>>> 
>>>>>> My target processor is an SAM9G25 (ARM926EJ-S core).  I have been
>>>>>> able
>>>> to
>>>>>> debug through Eclipse on the target hardware without issue.  I
>>>>>> tried
>>>> enabling
>>>>>> Reverse Debugging by going to Window->Customize Perspective...-
>>>>>>> Command Groups Availability and selecting "Reverse Debugging".
>>>>>>> Now
>>>>>> there is a "Reverse Toggle" button on my toolbar, but it is always
>>>>>> grayed
>>>> out
>>>>>> whether I have a debug session running or not.  I have also tried
>>>>>> entering
>>>> the
>>>>>> command "record" from the GDB console after my program breaks at
>>>> main.
>>>>>> When I run the program, I get the error message "Process record:
>>>>>> failed
>>>> to
>>>>>> record execution log".
>>>>> 
>>>>> I tried first running my application, pausing the debugger and then
>>>>> sending
>>>> the "record" command.  When I continued debugging, I got the
>>>> following GDB error:
>>>>> 
>>>>> ....x86_64-nativesdk-pokysdk-linux/gdb-cross-canadian-arm/7.7.1-r0/g
>>>>> db-
>>>> 7.7.1/gdb/utils.c:1073: internal-error: virtual memory exhausted.
>>>>> A problem internal to GDB has been detected, further debugging may
>>>>> prove unreliable.
>>>>> 
>>>>> I did some looking around and I couldn't see any reasonable answer
>>>>> to why
>>>> this would happen.  I also just noticed that for the Debug
>>>> Configurations under Eclipse, the debugger settings tab doesn't have
>>>> "Enable Reverse Debugging at startup" option listed for the C/C++
>>>> Remote Application debugging type.  Is this option just not available to me
>> with my environment?
>>>> 
>>>> This could mean many things but one area I know is troublesome is
>>>> python support. Sometimes there are issues between fundamental
>> types,
>>>> can you check if the error happens when gdb is running some pythonic
>>>> stuff.
>>> 
>>> Could you explain how to do this?  I don't use Python so I'm not sure if I'm
>> doing a valid test.  I tried to debug a Python script with GDB through Eclipse
>> and I wasn't successful.  I then went through the command line and was able
>> to remotely run a simple Python script (print "Hello, Python" once per
>> second) through GDB.  If I issued a "record" command through GDB first,
>> then when I tried to debug the Python script I'd immediately get a
>> segmentation fault.
>>> 
>>> Is there something specific you'd like me to try?  If you think the Python
>> support may be the issue, is there something I should be verifying is present
>> or is at a certain version?
>>> 
>> 
>> Disable python support in gdb and compile it e.g.
> 
> I rebuilt gdb.  I used the --configure option to verify that my previous gdb did have the "--with-python" option present and that my newly built gdb did not have that option anymore.  I no longer can produce the " internal-error: virtual memory exhausted" error, but whenever I try to record I still get the "Process record: failed to record execution log" when I run the application.  If it helps, here's the configuration output from GDB:
> 
> This GDB was configured as follows:
>   configure --host=x86_64-linux --target=arm-poky-linux-gnueabi
>             --with-auto-load-dir=$debugdir:$datadir/auto-load
>             --with-auto-load-safe-path=$debugdir:$datadir/auto-load
>             --with-expat
>             --with-gdb-datadir=~/poky/poky-build/tmp/sysroots/x86_64-linux/usr/share/gdb-arm926ejste-poky-linux-gnueabi/gdb (relocatable)
>             --with-jit-reader-dir=~/poky/poky-build/tmp/sysroots/x86_64-linux/usr/lib/arm-poky-linux-gnueabi/gdb (relocatable)
>             --without-libunwind-ia64
>             --without-lzma
>             --with-separate-debug-dir=~/poky/poky-build/tmp/sysroots/x86_64-linux/usr/lib/arm-poky-linux-gnueabi/debug (relocatable)
>             --with-zlib
>             --without-babeltrace
> 
> Any additional suggestions would be appreciated.

Can you build an application with out splitting the debug info. May be have toolchain on target and then compile a program natively and see if that works


More information about the yocto mailing list