[PATCH 2/2] [WineDbg]: try to detect jump (potentially thunk code) while getting the status

Eric Pouech eric.pouech at orange.fr
Sat Jan 8 07:09:03 CST 2011


(line debug info or not) for a given address

This will make the thunk transparent to the user. Needed to work around some thunking code emitted by msvc.

A+
---

 programs/winedbg/symbol.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)


diff --git a/programs/winedbg/symbol.c b/programs/winedbg/symbol.c
index 6602785..60e1c55 100644
--- a/programs/winedbg/symbol.c
+++ b/programs/winedbg/symbol.c
@@ -535,7 +535,15 @@ enum dbg_line_status symbol_get_function_line_status(const ADDRESS64* addr)
 
     /* do we have some info for lin address ? */
     if (!SymFromAddr(dbg_curr_process->handle, lin, &disp64, sym))
+    {
+        ADDRESS64   jumpee;
+        /* some compilers insert thunks in their code without debug info associated
+         * take care of this situation
+         */
+        if (be_cpu->is_jump((void*)lin, &jumpee))
+            return symbol_get_function_line_status(&jumpee);
         return dbg_no_line_info;
+    }
 
     switch (sym->Tag)
     {




More information about the wine-patches mailing list