dbghelp: Add a few more 64-bit symbol functions.

This commit is contained in:
Alexandre Julliard 2009-04-23 12:41:29 +02:00
parent 083473659b
commit 329c22f323
2 changed files with 57 additions and 8 deletions

View File

@ -118,11 +118,11 @@
@ stdcall SymGetSymFromAddr(long long ptr ptr) @ stdcall SymGetSymFromAddr(long long ptr ptr)
@ stdcall SymGetSymFromAddr64(long double ptr ptr) @ stdcall SymGetSymFromAddr64(long double ptr ptr)
@ stdcall SymGetSymFromName(long str ptr) @ stdcall SymGetSymFromName(long str ptr)
@ stub SymGetSymFromName64 @ stdcall SymGetSymFromName64(long str ptr)
@ stdcall SymGetSymNext(long ptr) @ stdcall SymGetSymNext(long ptr)
@ stub SymGetSymNext64 @ stdcall SymGetSymNext64(long ptr)
@ stdcall SymGetSymPrev(long ptr) @ stdcall SymGetSymPrev(long ptr)
@ stub SymGetSymPrev64 @ stdcall SymGetSymPrev64(long ptr)
@ stub SymGetSymbolFile @ stub SymGetSymbolFile
@ stub SymGetSymbolFileW @ stub SymGetSymbolFileW
@ stdcall SymGetTypeFromName(ptr double str ptr) @ stdcall SymGetTypeFromName(ptr double str ptr)
@ -180,7 +180,7 @@
# @ stub SymSetSymWithAddr64 no longer present ?? # @ stub SymSetSymWithAddr64 no longer present ??
@ stub SymSetSymWithAddr64 @ stub SymSetSymWithAddr64
@ stdcall SymUnDName(ptr str long) @ stdcall SymUnDName(ptr str long)
@ stub SymUnDName64 @ stdcall SymUnDName64(ptr str long)
@ stdcall SymUnloadModule(long long) @ stdcall SymUnloadModule(long long)
@ stdcall SymUnloadModule64(long double) @ stdcall SymUnloadModule64(long double)
@ stdcall UnDecorateSymbolName(str str long long) @ stdcall UnDecorateSymbolName(str str long long)

View File

@ -1349,6 +1349,28 @@ BOOL WINAPI SymFromName(HANDLE hProcess, PCSTR Name, PSYMBOL_INFO Symbol)
return FALSE; return FALSE;
} }
/***********************************************************************
* SymGetSymFromName64 (DBGHELP.@)
*/
BOOL WINAPI SymGetSymFromName64(HANDLE hProcess, PCSTR Name, PIMAGEHLP_SYMBOL64 Symbol)
{
char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME];
SYMBOL_INFO*si = (SYMBOL_INFO*)buffer;
size_t len;
if (Symbol->SizeOfStruct < sizeof(*Symbol)) return FALSE;
si->SizeOfStruct = sizeof(*si);
si->MaxNameLen = MAX_SYM_NAME;
if (!SymFromName(hProcess, Name, si)) return FALSE;
Symbol->Address = si->Address;
Symbol->Size = si->Size;
Symbol->Flags = si->Flags;
len = min(Symbol->MaxNameLength, si->MaxNameLen);
lstrcpynA(Symbol->Name, si->Name, len);
return TRUE;
}
/*********************************************************************** /***********************************************************************
* SymGetSymFromName (DBGHELP.@) * SymGetSymFromName (DBGHELP.@)
*/ */
@ -1407,9 +1429,9 @@ BOOL symt_fill_func_line_info(const struct module* module, const struct symt_fun
} }
/*********************************************************************** /***********************************************************************
* SymGetSymNext (DBGHELP.@) * SymGetSymNext64 (DBGHELP.@)
*/ */
BOOL WINAPI SymGetSymNext(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol) BOOL WINAPI SymGetSymNext64(HANDLE hProcess, PIMAGEHLP_SYMBOL64 Symbol)
{ {
/* algo: /* algo:
* get module from Symbol.Address * get module from Symbol.Address
@ -1422,10 +1444,29 @@ BOOL WINAPI SymGetSymNext(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
return FALSE; return FALSE;
} }
/***********************************************************************
* SymGetSymNext (DBGHELP.@)
*/
BOOL WINAPI SymGetSymNext(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
{
FIXME("(%p, %p): stub\n", hProcess, Symbol);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/***********************************************************************
* SymGetSymPrev64 (DBGHELP.@)
*/
BOOL WINAPI SymGetSymPrev64(HANDLE hProcess, PIMAGEHLP_SYMBOL64 Symbol)
{
FIXME("(%p, %p): stub\n", hProcess, Symbol);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*********************************************************************** /***********************************************************************
* SymGetSymPrev (DBGHELP.@) * SymGetSymPrev (DBGHELP.@)
*/ */
BOOL WINAPI SymGetSymPrev(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol) BOOL WINAPI SymGetSymPrev(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
{ {
FIXME("(%p, %p): stub\n", hProcess, Symbol); FIXME("(%p, %p): stub\n", hProcess, Symbol);
@ -1685,7 +1726,15 @@ PVOID WINAPI SymFunctionTableAccess64(HANDLE hProcess, DWORD64 AddrBase)
*/ */
BOOL WINAPI SymUnDName(PIMAGEHLP_SYMBOL sym, PSTR UnDecName, DWORD UnDecNameLength) BOOL WINAPI SymUnDName(PIMAGEHLP_SYMBOL sym, PSTR UnDecName, DWORD UnDecNameLength)
{ {
TRACE("(%p %s %u)\n", sym, UnDecName, UnDecNameLength); return UnDecorateSymbolName(sym->Name, UnDecName, UnDecNameLength,
UNDNAME_COMPLETE) != 0;
}
/***********************************************************************
* SymUnDName64 (DBGHELP.@)
*/
BOOL WINAPI SymUnDName64(PIMAGEHLP_SYMBOL64 sym, PSTR UnDecName, DWORD UnDecNameLength)
{
return UnDecorateSymbolName(sym->Name, UnDecName, UnDecNameLength, return UnDecorateSymbolName(sym->Name, UnDecName, UnDecNameLength,
UNDNAME_COMPLETE) != 0; UNDNAME_COMPLETE) != 0;
} }