Grazvydas Ignotas : dbghelp: Detect if return address information is missing.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Apr 7 10:11:27 CDT 2015


Module: wine
Branch: master
Commit: 2fee06de4980a59cee0930bf966b654270716a7e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2fee06de4980a59cee0930bf966b654270716a7e

Author: Grazvydas Ignotas <notasas at gmail.com>
Date:   Mon Apr  6 20:39:35 2015 +0300

dbghelp: Detect if return address information is missing.

---

 dlls/dbghelp/dwarf.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index c54bfd3..fa9e559 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -3271,6 +3271,10 @@ BOOL dwarf2_virtual_unwind(struct cpu_stack_walk* csw, ULONG_PTR ip, CONTEXT* co
     if (end) fde_ctx.data = end;
 
     execute_cfa_instructions(&fde_ctx, ip, &info);
+
+    /* if there is no information about retaddr, use default unwinder */
+    if (info.state.rules[info.retaddr_reg] == RULE_UNSET) return FALSE;
+
     apply_frame_state(pair.effective, csw, context, &info.state, cfa);
 
     return TRUE;




More information about the wine-cvs mailing list