dbghelp: Teach stabs_parse about other kinds of Mach-O symbol definitions.
This commit is contained in:
parent
d35c0e87eb
commit
615fff293a
|
@ -53,6 +53,10 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_MACH_O_NLIST_H
|
||||||
|
# include <mach-o/nlist.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winnls.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. */
|
/* Always ignore these, they seem to be used only on Darwin. */
|
||||||
break;
|
break;
|
||||||
case N_ABS:
|
case N_ABS:
|
||||||
|
#ifdef N_SECT
|
||||||
|
case N_SECT:
|
||||||
|
#endif
|
||||||
/* FIXME: Other definition types (N_TEXT, N_DATA, N_BSS, ...)? */
|
/* FIXME: Other definition types (N_TEXT, N_DATA, N_BSS, ...)? */
|
||||||
if (callback)
|
if (callback)
|
||||||
{
|
{
|
||||||
BOOL is_public = (stab_ptr->n_type & N_EXT);
|
BOOL is_public = (stab_ptr->n_type & N_EXT);
|
||||||
BOOL is_global = is_public;
|
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++;
|
if (*ptr == '_') ptr++;
|
||||||
stab_strcpy(symname, sizeof(symname), ptr);
|
stab_strcpy(symname, sizeof(symname), ptr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue