[yocto] Can't enable reverse debugging

Bryan Evenson bevenson at melinkcorp.com
Mon Dec 12 11:12:02 PST 2016


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.

Thanks,
Bryan

> 
> > Thanks,
> > Bryan




More information about the yocto mailing list