mirror of
https://github.com/reactos/reactos.git
synced 2024-11-24 12:03:31 +08:00
[WINESYNC] dbghelp: Pass stab size to stabs_parse.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org> wine commit id 9c2cedabc7c7b48c4f9042d444c45a3036cfd4be by Jacek Caban <jacek@codeweavers.com>
This commit is contained in:
parent
7fa8c40ed5
commit
36388062cd
@ -723,7 +723,7 @@ typedef void (*stabs_def_cb)(struct module* module, ULONG_PTR load_offset,
|
||||
BOOL is_public, BOOL is_global, unsigned char other,
|
||||
struct symt_compiland* compiland, void* user);
|
||||
extern BOOL stabs_parse(struct module* module, ULONG_PTR load_offset,
|
||||
const char* stabs, int stablen,
|
||||
const char* stabs, size_t nstab, size_t stabsize,
|
||||
const char* strs, int strtablen,
|
||||
stabs_def_cb callback, void* user) DECLSPEC_HIDDEN;
|
||||
|
||||
|
@ -1007,7 +1007,7 @@ static BOOL elf_load_debug_info_from_map(struct module* module,
|
||||
{
|
||||
/* OK, now just parse all of the stabs. */
|
||||
lret = stabs_parse(module, module->format_info[DFI_ELF]->u.elf_info->elf_addr,
|
||||
stab, image_get_map_size(&stab_sect),
|
||||
stab, image_get_map_size(&stab_sect) / sizeof(struct stab_nlist), sizeof(struct stab_nlist),
|
||||
stabstr, image_get_map_size(&stabstr_sect),
|
||||
NULL, NULL);
|
||||
if (lret)
|
||||
|
@ -944,7 +944,7 @@ static int macho_parse_symtab(struct image_file_map* ifm,
|
||||
|
||||
if (!stabs_parse(mdi->module,
|
||||
mdi->module->format_info[DFI_MACHO]->u.macho_info->load_addr - fmap->segs_start,
|
||||
stab, sc->nsyms * stabsize,
|
||||
stab, sc->nsyms, stabsize,
|
||||
stabstr, sc->strsize, macho_stabs_def_cb, mdi))
|
||||
ret = -1;
|
||||
|
||||
|
@ -502,7 +502,7 @@ static BOOL pe_load_stabs(const struct process* pcs, struct module* module)
|
||||
{
|
||||
ret = stabs_parse(module,
|
||||
module->module.BaseOfImage - fmap->u.pe.ntheader.OptionalHeader.ImageBase,
|
||||
stab, image_get_map_size(§_stabs),
|
||||
stab, image_get_map_size(§_stabs) / sizeof(struct stab_nlist), sizeof(struct stab_nlist),
|
||||
stabstr, image_get_map_size(§_stabstr),
|
||||
NULL, NULL);
|
||||
}
|
||||
|
@ -1255,7 +1255,7 @@ static inline void stabbuf_append(char **buf, unsigned *buf_size, const char *st
|
||||
}
|
||||
|
||||
BOOL stabs_parse(struct module* module, ULONG_PTR load_offset,
|
||||
const char* pv_stab_ptr, int stablen,
|
||||
const char* pv_stab_ptr, size_t nstab, size_t stabsize,
|
||||
const char* strs, int strtablen,
|
||||
stabs_def_cb callback, void* user)
|
||||
{
|
||||
@ -1264,7 +1264,6 @@ BOOL stabs_parse(struct module* module, ULONG_PTR load_offset,
|
||||
struct symt_compiland* compiland = NULL;
|
||||
char* srcpath = NULL;
|
||||
int i;
|
||||
int nstab;
|
||||
const char* ptr;
|
||||
char* stabbuff;
|
||||
unsigned int stabbufflen;
|
||||
@ -1280,14 +1279,8 @@ BOOL stabs_parse(struct module* module, ULONG_PTR load_offset,
|
||||
BOOL ret = TRUE;
|
||||
struct location loc;
|
||||
unsigned char type;
|
||||
size_t stabsize = sizeof(struct stab_nlist);
|
||||
uint64_t n_value;
|
||||
|
||||
#ifdef __APPLE__
|
||||
if (module->process->is_64bit)
|
||||
stabsize = sizeof(struct macho64_nlist);
|
||||
#endif
|
||||
nstab = stablen / stabsize;
|
||||
strs_end = strs + strtablen;
|
||||
|
||||
memset(stabs_basic, 0, sizeof(stabs_basic));
|
||||
@ -1306,11 +1299,7 @@ BOOL stabs_parse(struct module* module, ULONG_PTR load_offset,
|
||||
for (i = 0; i < nstab; i++)
|
||||
{
|
||||
stab_ptr = (struct stab_nlist *)(pv_stab_ptr + i * stabsize);
|
||||
n_value = stab_ptr->n_value;
|
||||
#ifdef __APPLE__
|
||||
if (module->process->is_64bit)
|
||||
n_value = ((struct macho64_nlist *)stab_ptr)->n_value;
|
||||
#endif
|
||||
n_value = stabsize == sizeof(struct macho64_nlist) ? ((struct macho64_nlist *)stab_ptr)->n_value : stab_ptr->n_value;
|
||||
ptr = strs + stab_ptr->n_strx;
|
||||
if ((ptr > strs_end) || (ptr + strlen(ptr) > strs_end))
|
||||
{
|
||||
|
@ -4,4 +4,4 @@ files:
|
||||
include/dbghelp.h: sdk/include/psdk/dbghelp.h
|
||||
include/wine/mscvpdb.h: sdk/include/reactos/wine/mscvpdb.h
|
||||
tags:
|
||||
wine: f48f8cc39980f2d93015ecd56f28e3e9f52843fe
|
||||
wine: 9c2cedabc7c7b48c4f9042d444c45a3036cfd4be
|
||||
|
Loading…
Reference in New Issue
Block a user