DBGHELP: Implement SymGetSymFromAddr64

Eric Pouech eric.pouech at wanadoo.fr
Sun May 28 13:39:04 CDT 2006


Frank Richter wrote:

>On 26.05.2006 21:17, Eric Pouech wrote:
>  
>
>>>+/******************************************************************
>>>+ *        SymGetSymFromAddr (DBGHELP.@)
>>>+ *
>>>+ */
>>>+BOOL WINAPI SymGetSymFromAddr64(HANDLE hProcess, DWORD64 Address,
>>>+                                PDWORD64 Displacement,
>>>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 (!SymFromAddr(hProcess, Address, &Displacement, si))
>>>      
>>>
>
>Also, generally, wouldn't it be more correct to call SymFromAddr from
>SymFromAddr64 and not vice versa? Ie forward from more limited to less
>limited functions, and not from less limited to more limited functions
>(the limitation being here that SymFromAddr() only supports 32 bit
>addresses etc, while SymFromAddr64() also supports 64 bit ones).
>  
>
as we're only be debugging 32 bit applications (the real port to 64 bit 
isn't done yet), I don't think it's necessary
btw, the same applies (in dbghelp) for symbols' name. they are stored as 
ascii strings (and I don't know of a language where identifiers are 
unicode, actually most of them are ascii 7 bit !!)
moreovre, I do want to maintaint the overall memory consumption when 
loading the debug information as small as possible huge

A+



More information about the wine-devel mailing list