Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: adeeshah <asgher.adeel@gmail.com>
To: gdb@sourceware.org
Subject: Re: How to check that GDB is going to make a longjmp?
Date: Tue, 13 Sep 2011 13:28:00 -0000	[thread overview]
Message-ID: <32455704.post@talk.nabble.com> (raw)
In-Reply-To: <CAPftXUK8QDOnpCDV+fubL2hRzUBwFH=YvMX-=__+bBcseNxYrQ@mail.gmail.com>


Hi again, sorry for the later reply.

Well with some more digging I find out that its not the long jumps that are
culprit here.
I actually don't know whats the error but I will try to explain my scenerio.

- I have a C file called main.c and I create a new C file called main2.c
from it.
- The main2.c is actually same as main.c but it contains lines like this,
    #line 112:main.c
- Such lines appear after every line in main2.c so that GDB reads these
lines and create stack frames from there.
- Now when I debug my executable created from main2.c.
- Everything works perfect while stepping but right after my program does
longjump (even the longjmp executes correctly), and then i try to do step
again my stack frames are corrupted. and return me some file with line
number which is not correct.

I am compiling with Mingw on windows 7 using these flags -ggdb -O0
-falign-functions.

Adeel.


Kevin Pouget-2 wrote:
> 
> I guess you want to catch longjump of the inferior, not GDB itself, right?
> 
> One way is to set a breakpoint on the `longjmp' function itself, and
> then jump over the function, or enter `return' to return directly from
> the function without executing its body.
> The content of the jmp_bug depends of your system, so you need to
> check your local setjmp.h. For instance, you can see in this µlibC [1]
> implementation that they use a buffer to store the relevant CPU
> registers, with pre-processor macro.
> 
> setjump populates the buffer with the registers, longjmp pushes the
> buffer values back to the CPU registers.
> 
> 
> Cordially,
> 
> Kevin
> 
> [1]:
> http://cristi.indefero.net/p/uClibc-cristi/source/tree/0_9_29_rc1/libc/sysdeps/linux/cris/bits/setjmp.h
> 
> On Wed, Sep 7, 2011 at 11:10 AM, adeeshah <asgher.adeel@gmail.com> wrote:
>>
>> Hi,
>>
>> I want to avoid the GDB's longjmp. Is there a way to check that GDB is
>> going
>> to make a longjmp?
>>
>> How can i check the contents of jmp_buf?
>>
>> Adeel.
>> --
>> View this message in context:
>> http://old.nabble.com/How-to-check-that-GDB-is-going-to-make-a-longjmp--tp32414505p32414505.html
>> Sent from the Sourceware - gdb list mailing list archive at Nabble.com.
>>
> 
> 

-- 
View this message in context: http://old.nabble.com/How-to-check-that-GDB-is-going-to-make-a-longjmp--tp32414505p32455704.html
Sent from the Sourceware - gdb list mailing list archive at Nabble.com.


      reply	other threads:[~2011-09-13 13:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-07  9:10 adeeshah
2011-09-07  9:33 ` Kevin Pouget
2011-09-13 13:28   ` adeeshah [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=32455704.post@talk.nabble.com \
    --to=asgher.adeel@gmail.com \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox