winedbg: output of the bt command misses sometimes a frame

Hin-Tak Leung hintak_leung at yahoo.co.uk
Sat Feb 6 15:23:38 CST 2010


--- On Sat, 6/2/10, Bernhard Übelacker <bernhardu at vr-web.de> wrote:

> Hello,
> as I was debugging in wine I wondered if following
> behaviour is intended or
> could be considered a bug (and should be filed in
> bugtracker?).
> 
> When the debugger's current position is on the opening
> curly bracket of a
> function a "bt" command writes a different stack as if the
> current position
> is on the next instruction in this function.

I think you mis-understand how compiler and debugger works. Curly brackets delimit blocks of code but do not correspond to any machine instructions themselves, and is hence removed during compilation and execution. So debuggers are supposed to skip over them and behaves as if they don't exist during code inspection.

> What me makes wonder is the frame 0 is always correct but
> the calling
> function is not in the stack at all in the first bt:
> 
> 
> Wine-dbg>bt
> Backtrace:
> =>0 0x7ebe3622 IsWindow(hwnd=0x20060)
> [/home/bernhard/data/entwicklung/2010/wine/wine-git/dlls/user32/win.c:2503]
> in user32 (0x0033b500)
>   1 0x7e25429d create_window16+0x5c(cs=0x33b53c,
> className="QWidget", instance=0x400000, unicode=1)
> [/home/bernhard/data/entwicklung/2010/wine/wine-git/dlls/user.exe16/message.c:2670]
> in user.exe16 (0x0033b520)
>   2 0x7ebe0f91 CreateWindowExW+0x7e(exStyle=1024,
> className="QWidget", windowName="pica", style=114032640,
> x=-2147483648, y=-2147483648, width=-2147483648,
> height=-2147483648, parent=(nil), menu=(nil),
> instance=0x400000, data=0x0(nil))
> [/home/bernhard/data/entwicklung/2010/wine/wine-git/dlls/user32/win.c:1500]
> in user32 (0x0033b570)
>   3 0x650778f3 in qtgui4 (+0x778f3) (0x80000000)
> 
> 
> Wine-dbg>next
> 2507        if (!(ptr = WIN_GetPtr(
> hwnd ))) return FALSE;
> 
> 
> Wine-dbg>bt
> Backtrace:
> =>0 0x7ebe3637 IsWindow+0x15(hwnd=0x20060)
> [/home/bernhard/data/entwicklung/2010/wine/wine-git/dlls/user32/win.c:2507]
> in user32 (0x0033b2b0)
>   1 0x7ebe0bda WIN_CreateWindowEx+0x1201(cs=0x33b53c,
> className="QWidget", module=0x400000, unicode=1)
> [/home/bernhard/data/entwicklung/2010/wine/wine-git/dlls/user32/win.c:1406]
> in user32 (0x0033b500)
>   2 0x7e25429d create_window16+0x5c(cs=0x33b53c,
> className="QWidget", instance=0x400000, unicode=1)
> [/home/bernhard/data/entwicklung/2010/wine/wine-git/dlls/user.exe16/message.c:2670]
> in user.exe16 (0x0033b520)
>   3 0x7ebe0f91 CreateWindowExW+0x7e(exStyle=1024,
> className="QWidget", windowName="pica", style=114032640,
> x=-2147483648, y=-2147483648, width=-2147483648,
> height=-2147483648, parent=(nil), menu=(nil),
> instance=0x400000, data=0x0(nil))
> [/home/bernhard/data/entwicklung/2010/wine/wine-git/dlls/user32/win.c:1500]
> in user32 (0x0033b570)
>   4 0x650778f3 in qtgui4 (+0x778f3) (0x80000000)
> 
> 
> Wine-dbg>
> 
> 
> Kind regards
> Bernhard
> 
> 
> 


      



More information about the wine-devel mailing list