[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    winedbg and missing registry values
From:       Uwe Bonnes <bon () elektron ! ikp ! physik ! tu-darmstadt ! de>
Date:       2000-04-30 22:01:05
[Download RAW message or body]

Hallo Eric, Hallo All,

if the "Software\\Wine\\WineDbg" registry branch doesn't exist,
DEBUG_IntVars[i].pval doesn't get initialised and dereferencing it
later with the DBG_IVAR() macro crashed.

What about making the DBG_IVAR macro only dereference non NULL
pointers like with the patch below?

I too think that either the DEBUG_IntVarsRW() branch with RegOpenKey()
failing should emit some warning or initialize the pointers.

It will make life easier for people who don't read the instructions
(like me) :-)

Bye

Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Free Software: If you contribute nothing, expect nothing
--
Index: wine/debugger/debugger.h
===================================================================
RCS file: /home/wine/wine/debugger/debugger.h,v
retrieving revision 1.8
diff -u -r1.8 debugger.h
--- wine/debugger/debugger.h	2000/04/30 12:21:15	1.8
+++ wine/debugger/debugger.h	2000/04/30 21:55:34
@@ -468,7 +468,7 @@
 
 #define  DBG_IVARNAME(_var)	DEBUG_IV_##_var
 #define  DBG_IVARSTRUCT(_var)	DEBUG_IntVars[DBG_IVARNAME(_var)]
-#define  DBG_IVAR(_var)		(*(DBG_IVARSTRUCT(_var).pval))
+#define  DBG_IVAR(_var)		(DBG_IVARSTRUCT(_var).pval)?(*(DBG_IVARSTRUCT(_var).pval)):0
 #define  INTERNAL_VAR(_var,_val,_ref,_typ) DBG_IVARNAME(_var),
 enum debug_int_var {
 #include "intvar.h"
Index: wine/debugger/debugger.h
===================================================================
RCS file: /home/wine/wine/debugger/debugger.h,v
retrieving revision 1.8
diff -u -r1.8 debugger.h
--- wine/debugger/debugger.h	2000/04/30 12:21:15	1.8
+++ wine/debugger/debugger.h	2000/04/30 21:55:48
@@ -468,7 +468,7 @@
 
 #define  DBG_IVARNAME(_var)	DEBUG_IV_##_var
 #define  DBG_IVARSTRUCT(_var)	DEBUG_IntVars[DBG_IVARNAME(_var)]
-#define  DBG_IVAR(_var)		(*(DBG_IVARSTRUCT(_var).pval))
+#define  DBG_IVAR(_var)		(DBG_IVARSTRUCT(_var).pval)?(*(DBG_IVARSTRUCT(_var).pval)):0
 #define  INTERNAL_VAR(_var,_val,_ref,_typ) DBG_IVARNAME(_var),
 enum debug_int_var {
 #include "intvar.h"

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic