From: asmwarrior <asmwarrior@gmail.com>
To: Jan Kratochvil <jan.kratochvil@redhat.com>
Cc: gdb@sourceware.org
Subject: Re: Why running the next command will jump back to the previous line position
Date: Sat, 29 Oct 2011 07:49:00 -0000 [thread overview]
Message-ID: <4EABAF25.7060605@gmail.com> (raw)
In-Reply-To: <20111029072237.GA3977@host1.jankratochvil.net>
On 2011-10-29 15:22, Jan Kratochvil wrote:
> On Sat, 29 Oct 2011 09:11:25 +0200, asmwarrior wrote:
> [...]
>> This was quite strange, it looks like the instruction will return to some
>> previous position. (I guess that the destructor of the "std::map" was
>> called.
>
> yes, objdump -dSC shows there:
>
> std::map<int, std::string> m;
> 400bab: 48 8d 45 b0 lea -0x50(%rbp),%rax
> 400baf: 48 89 c7 mov %rax,%rdi
> 400bb2: e8 43 00 00 00 callq 400bfa<std::map<int, std::string, std::less<int>, std::allocator<std::pair<int const, std::string> > >::~map()>
> 400bb7: 89 d8 mov %ebx,%eax
>
Hi, thanks for the reply, I just run the objdump -dSC a.exe under Windows, and I found the similar content.
So, it looks like the line "std::map<int, std::string> m;" associates many instruction pieces. Those pieces include the calling of the std::map's destructor.
When leaving the main function body, the instruction piece of the destructor will reached, and gdb just refer to the declaration line. So that gdb put the current source line back to "std::map<int, std::string> m;" again.
My explanation is right?
>
>> My question is: This behavior is quite anti-friendly,
>
> Maybe GCC could produce there DW_LNS_negate_stmt so that the variable
> declaration line is still shown in backtraces (if the destructor crashes) but
> it is skipped over during stepping/nexting; but GDB currently would not show
> such line in backtraces, GCC currently does not produce DW_LNS_negate_stmt
> anyway.
>
I'm not quite sure what DW_LNS_negate_stmt means, any way, I will forward my question to GCC maillist.
Thanks.
asmwarrior
ollydbg from codeblocks' forum
next prev parent reply other threads:[~2011-10-29 7:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-29 7:23 asmwarrior
2011-10-29 7:42 ` Jan Kratochvil
2011-10-29 7:49 ` asmwarrior [this message]
2011-10-29 10:39 ` Jan Kratochvil
2011-10-29 14:14 ` 陳韋任
2011-10-29 17:12 ` asmwarrior
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=4EABAF25.7060605@gmail.com \
--to=asmwarrior@gmail.com \
--cc=gdb@sourceware.org \
--cc=jan.kratochvil@redhat.com \
/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