[PATCH 1/3] dbghelp: Reimplement SymGetLineFromAddrW64

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Tue Jun 4 19:43:35 CDT 2019


On 5/6/19 2:16 am, Alexandre Julliard wrote:
> Alistair Leslie-Hughes <leslie_alistair at hotmail.com> writes:
>
>> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
>> ---
>>   dlls/dbghelp/symbol.c | 75 +++++++++++++++++++++++++++++++------------
>>   1 file changed, 54 insertions(+), 21 deletions(-)
> Why is that better?
>
Its not.  The title should be something "Dont call SymGetLineFromAddr64 
from SymGetLineFromAddrW64"

or the like.

My end goal is to fix

https://bugs.winehq.org/show_bug.cgi?id=34687


My first attempt, Huw suggested to "For SymGetLineFromAddr64() calls 
SymGetLineFromAddrW64()"

https://www.winehq.org/pipermail/wine-devel/2017-February/116170.html

My next attempt Zebediah pointed out that I would have a double 
conversion when using SymGetLineFromAddr.

These three patches address both concerns.


During my investigation, I found that dbghelp is using a flag value for 
working out if winedbg is the one actually

calling it.  However, this value is actually now a valid option (may not 
of been at the time it was written).

So my current plan is

1. Have all SymGetLineFromAddr* call SymGetLineFromAddrW64

2. Implement/Stub functions SymSetExtendedOption/SymGetExtendedOption 
(available windows 10)

3. Add an internal value into SymSetExtendedOption for winedbg to use 
(which doesn't conflict with current values).

4. Update dbghelp/winedbg to use the internal value.

5. Return windows path when winedbg isn't in use.


Hope this makes things clearer.

Regards

Alistair.




More information about the wine-devel mailing list