Alban Browaeys a écrit :
I still have to find why (probably gcc related) but under debian sid (no problems under lenny, have not tested squeeze yet) "winedbg --gdb regedit"
trigger an infinite loop error: $ winedbg --gdb regedit 0017:0018: create process 'C:\windows\system32\regedit.exe'/0x110640 @0x7eb62c04 (0<0>) fixme:dbghelp_dwarf:compute_location Unhandled attr op: e0 it: dwarf.c :1355 : dwarf2_parse_variable: L'assertion « subpgm->func » a échoué. wine: Assertion failed at address 0xffffe424 (thread 0009), starting debugger...
this looks like gcc emits TLS-based variables, and we don't handle this yet in the dwarf parser your fix is wrong as it just hides this fact, and still "creates" the variables/functions in the internal dbghelp structure, will give at the end wrong results in the debugger (and hard to understand) the correct short term fix is to handle the loc_error case in dwarf2_parse_variable (for the DW_AT_location case) by simply doing nothing the correct long term fix is to implement TLS based variable addressing in the parser
A+