99c7818097
To be used in place of symt_find_nearest(). symt_find_symbol_at() ensures that the address passed is within the boundaries of the returned symbol (while find_nearest() doesn't). This fixes erroneous backtraces in debugger like: $ ./wine winedbg notepad WineDbg starting on pid 0104 RtlDefaultNpAcl () at Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731 0x00000170054805 ntdll+0x54805 [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731]: ret 1731 } Wine-dbg>bt Backtrace: =>0 0x00000170054805 RtlDefaultNpAcl+0x2d5(pAcl=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731] in ntdll (0x000001700701a4) 1 0x0000017002d6c4 __wine_pop_frame(pAcl=<internal error>) [Z:\home\eric\work\wine\include\wine\exception.h:273] in ntdll (0x000001700701a4) 2 0x0000017002d6c4 process_breakpoint+0x84() [Z:\home\eric\work\wine\dlls\ntdll\loader.c:3912] in ntdll (0x000001700701a4) 3 0x000001700354c9 LdrInitializeThunk+0x509(context=<register R13 not accessible in this frame>, unknown2=<internal error>, unknown3=<internal error>, unknown4=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\loader.c:4200] in ntdll (0x000001700701a4) where RtlDefaultNpAcl() has nothing to do here (it's the symbol below RIP and we don't have a symbol with debug information for that address). Signed-off-by: Eric Pouech <eric.pouech@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org> |
||
---|---|---|
.. | ||
tests | ||
Makefile.in | ||
coff.c | ||
cpu_arm.c | ||
cpu_arm64.c | ||
cpu_i386.c | ||
cpu_x86_64.c | ||
dbghelp.c | ||
dbghelp.spec | ||
dbghelp_private.h | ||
dwarf.c | ||
dwarf.h | ||
elf_module.c | ||
image.c | ||
image_private.h | ||
macho_module.c | ||
minidump.c | ||
module.c | ||
msc.c | ||
path.c | ||
pe_module.c | ||
source.c | ||
stabs.c | ||
stack.c | ||
storage.c | ||
symbol.c | ||
type.c | ||
version.rc | ||
wdbgexts.h |