dbghelp: Teach stabs_parse about other kinds of Mach-O symbol definitions.

This commit is contained in:
Ken Thomases 2009-03-11 09:08:33 -05:00 committed by Alexandre Julliard
parent d35c0e87eb
commit 615fff293a
1 changed files with 17 additions and 0 deletions

View File

@ -53,6 +53,10 @@
#include <assert.h>
#include <stdarg.h>
#ifdef HAVE_MACH_O_NLIST_H
# include <mach-o/nlist.h>
#endif
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
@ -1549,12 +1553,25 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
/* Always ignore these, they seem to be used only on Darwin. */
break;
case N_ABS:
#ifdef N_SECT
case N_SECT:
#endif
/* FIXME: Other definition types (N_TEXT, N_DATA, N_BSS, ...)? */
if (callback)
{
BOOL is_public = (stab_ptr->n_type & N_EXT);
BOOL is_global = is_public;
#ifdef N_PEXT
/* "private extern"; shared among compilation units in a shared
* library, but not accessible from outside the library. */
if (stab_ptr->n_type & N_PEXT)
{
is_public = FALSE;
is_global = TRUE;
}
#endif
if (*ptr == '_') ptr++;
stab_strcpy(symname, sizeof(symname), ptr);