From: Joel Brobecker <brobecker@adacore.com>
To: Roland Schwingel <roland.schwingel@onevision.de>
Cc: gdb <gdb@sourceware.org>
Subject: Re: Strange stack trace on Windows
Date: Tue, 17 Mar 2009 19:43:00 -0000 [thread overview]
Message-ID: <20090317194256.GH32001@adacore.com> (raw)
In-Reply-To: <49BFC403.3070306@onevision.de>
[-- Attachment #1: Type: text/plain, Size: 980 bytes --]
> That sounds interesting... :-)
> Could you outline that a bit more? Where and how can I do that?
> (I am digging in gdb's source only for a few days now).
You can try the attached patch. What it does is that it matches
the "current_pc" with the start address of the associated function
(if any). If they are identical, then we're at the beginning of
the function. In that case, we know that the function will appear
frameless since the frame hasn't been setup, but we also know how to
unwind properly from it. I can't test the patch right now, so let
me know how it goes.
> Hmm.. Are so few people using gdb on windows? I think there should be
> way more interest in getting gdb to deal right with MS debugging
> format in order to get also debugging with frameless functions right.
Not sure. I suspect that most people don't debug programs using
threads, and so don't need AdaCore's patch. And if you don't install
the patch, then the "next" problem goes away.
--
Joel
[-- Attachment #2: unwind.diff --]
[-- Type: text/x-diff, Size: 546 bytes --]
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 0d77fab..073721e 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -1561,7 +1561,8 @@ i386_frame_cache (struct frame_info *this_frame, void **this_cache)
functions this might work too. */
current_pc = get_frame_pc (this_frame);
- if (i386_in_dll (current_pc)
+ if (current_pc == cache->pc
+ && i386_in_dll (current_pc)
&& !i386_function_has_frame (current_pc))
{
/* Functions in DLL for which do not seem to create a standard
next prev parent reply other threads:[~2009-03-17 19:43 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 15:39 Roland Schwingel
2009-03-17 19:43 ` Joel Brobecker [this message]
-- strict thread matches above, loose matches on Subject: below --
2009-03-23 13:12 Roland Schwingel
2009-03-18 9:26 Roland Schwingel
2009-03-19 14:18 ` Joel Brobecker
2009-03-17 15:26 Roland Schwingel
2009-03-17 13:49 Roland Schwingel
2009-03-17 14:27 ` Pedro Alves
2009-03-17 15:08 ` Joel Brobecker
2009-03-17 11:58 Roland Schwingel
2009-03-17 13:19 ` Joel Brobecker
2007-09-29 22:01 Gordon Prieur
2007-09-30 3:00 ` Daniel Jacobowitz
2007-09-30 18:13 ` Eli Zaretskii
2007-10-01 14:03 ` Gordon Prieur
2007-10-01 14:39 ` Joel Brobecker
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=20090317194256.GH32001@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb@sourceware.org \
--cc=roland.schwingel@onevision.de \
/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