another stab at stabs parsing

Eric Pouech pouech-eric at wanadoo.fr
Tue Apr 1 14:00:17 CST 2003


Thunderbird reported some unsupported stabs bits while loading latest 
glibc 2.3
this patch should take care of it

A+
-- 
Eric Pouech
-------------- next part --------------
Name:          wd_stabs
ChangeLog:     Added support for R types in stabs parsing
License:       X11
GenDate:       2003/04/01 19:58:40 UTC
ModifiedFiles: programs/winedbg/stabs.c
===================================================================
RCS file: /home/cvs/cvsroot/wine/wine/programs/winedbg/stabs.c,v
retrieving revision 1.5
diff -u -u -r1.5 stabs.c
--- programs/winedbg/stabs.c	19 Feb 2003 03:41:25 -0000	1.5
+++ programs/winedbg/stabs.c	31 Mar 2003 19:53:40 -0000
@@ -752,6 +752,31 @@
                 }
             }
             break;
+        case 'R':
+            {
+                enum debug_type_basic basic = DT_BASIC_LAST;
+                int type, len, unk;
+                
+                PTS_ABORTIF(ptd, DEBUG_PTS_ReadNum(ptd, &type) == -1);
+                PTS_ABORTIF(ptd, *ptd->ptr++ != ';');	/* ';' */
+                PTS_ABORTIF(ptd, DEBUG_PTS_ReadNum(ptd, &len) == -1);
+                PTS_ABORTIF(ptd, *ptd->ptr++ != ';');	/* ';' */
+                PTS_ABORTIF(ptd, DEBUG_PTS_ReadNum(ptd, &unk) == -1);
+                PTS_ABORTIF(ptd, *ptd->ptr++ != ';');	/* ';' */
+
+                switch (type)
+                {
+                case 1: basic = DT_BASIC_FLOAT; break;
+                case 2: basic = DT_BASIC_DOUBLE; break;
+                case 3: basic = DT_BASIC_CMPLX_FLOAT; break;
+                case 4: basic = DT_BASIC_CMPLX_DOUBLE; break;
+                case 5: basic = DT_BASIC_CMPLX_LONGDOUBLE; break;
+                case 6: basic = DT_BASIC_LONGDOUBLE; break;
+                default: PTS_ABORTIF(ptd, 1);
+                }
+                PTS_ABORTIF(ptd, !(new_dt = DEBUG_GetBasicType(basic)));
+            }
+            break;
 	default:
 	    DEBUG_Printf(DBG_CHN_MESG, "Unknown type '%c'\n", ptd->ptr[-1]);
 	    return -1;


More information about the wine-patches mailing list