[PATCH 1/3] winedbg: Detect and handle identical stack frames when printing a backtrace.
Zebediah Figura
z.figura12 at gmail.com
Sun Jan 14 19:01:13 CST 2018
Same as gdb, minus the 'corrupt stack?' message.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
programs/winedbg/stack.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/programs/winedbg/stack.c b/programs/winedbg/stack.c
index f49480a..519aa69 100644
--- a/programs/winedbg/stack.c
+++ b/programs/winedbg/stack.c
@@ -322,6 +322,15 @@ static void backtrace(void)
dbg_curr_thread->curr_frame < dbg_curr_thread->num_frames;
dbg_curr_thread->curr_frame++)
{
+ if (dbg_curr_thread->curr_frame > 0 &&
+ !memcmp(&dbg_curr_thread->frames[dbg_curr_thread->curr_frame].addr_frame,
+ &dbg_curr_thread->frames[dbg_curr_thread->curr_frame-1].addr_frame,
+ sizeof(ADDRESS64)))
+ {
+ dbg_printf("Backtrace stopped: previous frame identical to this frame\n");
+ break;
+ }
+
dbg_printf("%s%d ",
(cf == dbg_curr_thread->curr_frame ? "=>" : " "),
dbg_curr_thread->curr_frame);
--
2.7.4
More information about the wine-devel
mailing list