[docs] winedev: Update backtrace and relay examples

André Hentschel nerv at dawncrow.de
Tue Jul 2 16:39:01 CDT 2013


---
 en/winedev-debugger.sgml | 269 ++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 222 insertions(+), 47 deletions(-)

diff --git a/en/winedev-debugger.sgml b/en/winedev-debugger.sgml
index b877063..31046c0 100644
--- a/en/winedev-debugger.sgml
+++ b/en/winedev-debugger.sgml
@@ -280,31 +280,208 @@ winedbg hl.exe -windowed
           These usually show up like this:
         </para>
         <screen>
-|Unexpected Windows program segfault - opcode = 8b
-|Segmentation fault in Windows program 1b7:c41.
-|Loading symbols from ELF file /root/wine/wine...
-|....more Loading symbols from ...
-|In 16 bit mode.
-|Register dump:
-| CS:01b7 SS:016f DS:0287 ES:0000
-| IP:0c41 SP:878a BP:8796 FLAGS:0246
-| AX:811e BX:0000 CX:0000 DX:0000 SI:0001 DI:ffff
-|Stack dump:
-|0x016f:0x878a:  0001 016f ffed 0000 0000 0287 890b 1e5b
-|0x016f:0x879a:  01b7 0001 000d 1050 08b7 016f 0001 000d
-|0x016f:0x87aa:  000a 0003 0004 0000 0007 0007 0190 0000
-|0x016f:0x87ba:
-|
-|0050: sel=0287 base=40211d30 limit=0b93f (bytes) 16-bit rw-
-|Backtrace:
-|0 0x01b7:0x0c41 (PXSRV_FONGETFACENAME+0x7c)
-|1 0x01b7:0x1e5b (PXSRV_FONPUTCATFONT+0x2cd)
-|2 0x01a7:0x05aa
-|3 0x01b7:0x0768 (PXSRV_FONINITFONTS+0x81)
-|4 0x014f:0x03ed (PDOXWIN_ at SQLCURCB$Q6CBTYPEULN8CBSCTYPE+0x1b1)
-|5 0x013f:0x00ac
-|
-|0x01b7:0x0c41 (PXSRV_FONGETFACENAME+0x7c):  movw        %es:0x38(%bx),%dx
+Unhandled exception: page fault on write access to 0x00000000 in 32-bit code (0x0043369e).
+Register dump:
+ CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
+ EIP:0043369e ESP:0b3ee90c EBP:0b3ee938 EFLAGS:00010246(  R- --  I  Z- -P- )
+ EAX:00000072 EBX:7b8acff4 ECX:00000000 EDX:6f727265
+ ESI:7ba3b37c EDI:7ffa0000
+Stack dump:
+0x0b3ee90c:  7b82ced8 00000000 7ba3b348 7b884401
+0x0b3ee91c:  7b883cdc 00000008 00000000 7bc36e7b
+0x0b3ee92c:  7b8acff4 7b82ceb9 7b8acff4 0b3eea18
+0x0b3ee93c:  7b82ce82 00000000 00000000 00000000
+0x0b3ee94c:  00000000 0b3ee968 70d7ed7b 70c50000
+0x0b3ee95c:  00000000 0b3eea40 7b87fd40 7b82d0d0
+Backtrace:
+=>0 0x0043369e in elementclient (+0x3369e) (0x0b3ee938)
+  1 0x7b82ce82 CONSOLE_SendEventThread+0xe1(pmt=0x0(nil)) [/usr/src/debug/wine-1.5.14/dlls/kernel32/console.c:1989] in kernel32 (0x0b3eea18)
+  2 0x7bc76320 call_thread_func_wrapper+0xb() in ntdll (0x0b3eea28)
+  3 0x7bc7916e call_thread_func+0x7d(entry=0x7b82cda0, arg=0x0(nil), frame=0xb3eeb18) [/usr/src/debug/wine-1.5.14/dlls/ntdll/signal_i386.c:2522] in ntdll (0x0b3eeaf8)
+  4 0x7bc762fe RtlRaiseException+0x21() in ntdll (0x0b3eeb18)
+  5 0x7bc7f3da start_thread+0xe9(info=0x7ffa0fb8) [/usr/src/debug/wine-1.5.14/dlls/ntdll/thread.c:408] in ntdll (0x0b3ef368)
+  6 0xf7597adf start_thread+0xce() in libpthread.so.0 (0x0b3ef468)
+0x0043369e: movl	%edx,0x0(%ecx)
+Modules:
+Module	Address			Debug info	Name (143 modules)
+PE	  340000-  3af000	Deferred        speedtreert
+PE	  3b0000-  3d6000	Deferred        ftdriver
+PE	  3e0000-  3e6000	Deferred        immwrapper
+PE	  400000-  b87000	Export          elementclient
+PE	  b90000-  e04000	Deferred        elementskill
+PE	  e10000-  e42000	Deferred        ifc22
+PE	10000000-10016000	Deferred        zlibwapi
+ELF	41f75000-41f7e000	Deferred        librt.so.1
+ELF	41ff9000-42012000	Deferred        libresolv.so.2
+PE	48080000-480a8000	Deferred        msls31
+PE	65340000-653d2000	Deferred        oleaut32
+PE	70200000-70294000	Deferred        wininet
+PE	702b0000-70328000	Deferred        urlmon
+PE	70440000-704cf000	Deferred        mlang
+PE	70bd0000-70c34000	Deferred        shlwapi
+PE	70c50000-70ef3000	Deferred        mshtml
+PE	71930000-719b8000	Deferred        shdoclc
+PE	78130000-781cb000	Deferred        msvcr80
+ELF	79afb000-7b800000	Deferred        libnvidia-glcore.so.304.51
+ELF	7b800000-7ba3d000	Dwarf           kernel32<elf>
+  \-PE	7b810000-7ba3d000	\               kernel32
+ELF	7bc00000-7bcd5000	Dwarf           ntdll<elf>
+  \-PE	7bc10000-7bcd5000	\               ntdll
+ELF	7bf00000-7bf04000	Deferred        <wine-loader>
+ELF	7c288000-7c400000	Deferred        libvorbisenc.so.2
+PE	7c420000-7c4a7000	Deferred        msvcp80
+ELF	7c56d000-7c5b6000	Deferred        dinput<elf>
+  \-PE	7c570000-7c5b6000	\               dinput
+ELF	7c5b6000-7c600000	Deferred        libdbus-1.so.3
+ELF	7c70e000-7c715000	Deferred        libasyncns.so.0
+ELF	7c715000-7c77e000	Deferred        libsndfile.so.1
+ELF	7c77e000-7c7e5000	Deferred        libpulsecommon-1.1.so
+ELF	7c7e5000-7c890000	Deferred        krnl386.exe16.so
+PE	7c7f0000-7c890000	Deferred        krnl386.exe16
+ELF	7c890000-7c900000	Deferred        ieframe<elf>
+  \-PE	7c8a0000-7c900000	\               ieframe
+ELF	7ca00000-7ca1a000	Deferred        rasapi32<elf>
+  \-PE	7ca10000-7ca1a000	\               rasapi32
+ELF	7ca1a000-7ca21000	Deferred        libnss_dns.so.2
+ELF	7ca21000-7ca25000	Deferred        libnss_mdns4_minimal.so.2
+ELF	7ca25000-7ca2d000	Deferred        libogg.so.0
+ELF	7ca2d000-7ca5a000	Deferred        libvorbis.so.0
+ELF	7cd5d000-7cd9c000	Deferred        libflac.so.8
+ELF	7cd9c000-7cdea000	Deferred        libpulse.so.0
+ELF	7cdfe000-7ce23000	Deferred        iphlpapi<elf>
+  \-PE	7ce00000-7ce23000	\               iphlpapi
+ELF	7cff1000-7cffd000	Deferred        libnss_nis.so.2
+ELF	7d60d000-7d629000	Deferred        wsock32<elf>
+  \-PE	7d610000-7d629000	\               wsock32
+ELF	7d80d000-7d828000	Deferred        libnsl.so.1
+ELF	7d8cf000-7d8db000	Deferred        libgsm.so.1
+ELF	7d8db000-7d903000	Deferred        winepulse<elf>
+  \-PE	7d8e0000-7d903000	\               winepulse
+ELF	7d95c000-7d966000	Deferred        libwrap.so.0
+ELF	7d966000-7d96d000	Deferred        libxtst.so.6
+ELF	7d96d000-7d992000	Deferred        mmdevapi<elf>
+  \-PE	7d970000-7d992000	\               mmdevapi
+ELF	7d9b3000-7d9d0000	Deferred        msimtf<elf>
+  \-PE	7d9c0000-7d9d0000	\               msimtf
+ELF	7d9d0000-7d9e5000	Deferred        comm.drv16.so
+PE	7d9e0000-7d9e5000	Deferred        comm.drv16
+ELF	7da83000-7db5f000	Deferred        libgl.so.1
+ELF	7db60000-7db63000	Deferred        libx11-xcb.so.1
+ELF	7db63000-7db78000	Deferred        system.drv16.so
+PE	7db70000-7db78000	Deferred        system.drv16
+ELF	7db98000-7dca1000	Deferred        opengl32<elf>
+  \-PE	7dbb0000-7dca1000	\               opengl32
+ELF	7dca1000-7dcb6000	Deferred        vdmdbg<elf>
+  \-PE	7dcb0000-7dcb6000	\               vdmdbg
+ELF	7dcce000-7dd04000	Deferred        uxtheme<elf>
+  \-PE	7dcd0000-7dd04000	\               uxtheme
+ELF	7dd04000-7dd0a000	Deferred        libxfixes.so.3
+ELF	7dd0a000-7dd15000	Deferred        libxcursor.so.1
+ELF	7dd16000-7dd1f000	Deferred        libjson.so.0
+ELF	7dd24000-7dd38000	Deferred        psapi<elf>
+  \-PE	7dd30000-7dd38000	\               psapi
+ELF	7dd78000-7dda1000	Deferred        libexpat.so.1
+ELF	7dda1000-7ddd6000	Deferred        libfontconfig.so.1
+ELF	7ddd6000-7dde6000	Deferred        libxi.so.6
+ELF	7dde6000-7ddef000	Deferred        libxrandr.so.2
+ELF	7ddef000-7de11000	Deferred        libxcb.so.1
+ELF	7de11000-7df49000	Deferred        libx11.so.6
+ELF	7df49000-7df5b000	Deferred        libxext.so.6
+ELF	7df5b000-7df75000	Deferred        libice.so.6
+ELF	7df75000-7e005000	Deferred        winex11<elf>
+  \-PE	7df80000-7e005000	\               winex11
+ELF	7e005000-7e0a5000	Deferred        libfreetype.so.6
+ELF	7e0a5000-7e0c5000	Deferred        libtinfo.so.5
+ELF	7e0c5000-7e0ea000	Deferred        libncurses.so.5
+ELF	7e123000-7e1eb000	Deferred        crypt32<elf>
+  \-PE	7e130000-7e1eb000	\               crypt32
+ELF	7e1eb000-7e235000	Deferred        dsound<elf>
+  \-PE	7e1f0000-7e235000	\               dsound
+ELF	7e235000-7e2a7000	Deferred        ddraw<elf>
+  \-PE	7e240000-7e2a7000	\               ddraw
+ELF	7e2a7000-7e3e3000	Deferred        wined3d<elf>
+  \-PE	7e2b0000-7e3e3000	\               wined3d
+ELF	7e3e3000-7e417000	Deferred        d3d8<elf>
+  \-PE	7e3f0000-7e417000	\               d3d8
+ELF	7e417000-7e43b000	Deferred        imm32<elf>
+  \-PE	7e420000-7e43b000	\               imm32
+ELF	7e43b000-7e46f000	Deferred        ws2_32<elf>
+  \-PE	7e440000-7e46f000	\               ws2_32
+ELF	7e46f000-7e49a000	Deferred        msacm32<elf>
+  \-PE	7e470000-7e49a000	\               msacm32
+ELF	7e49a000-7e519000	Deferred        rpcrt4<elf>
+  \-PE	7e4b0000-7e519000	\               rpcrt4
+ELF	7e519000-7e644000	Deferred        ole32<elf>
+  \-PE	7e530000-7e644000	\               ole32
+ELF	7e644000-7e6f7000	Deferred        winmm<elf>
+  \-PE	7e650000-7e6f7000	\               winmm
+ELF	7e6f7000-7e7fa000	Deferred        comctl32<elf>
+  \-PE	7e700000-7e7fa000	\               comctl32
+ELF	7e7fa000-7ea23000	Deferred        shell32<elf>
+  \-PE	7e810000-7ea23000	\               shell32
+ELF	7ea23000-7eaf9000	Deferred        gdi32<elf>
+  \-PE	7ea30000-7eaf9000	\               gdi32
+ELF	7eafb000-7eaff000	Deferred        libnvidia-tls.so.304.51
+ELF	7eaff000-7eb09000	Deferred        libxrender.so.1
+ELF	7eb09000-7eb0f000	Deferred        libxxf86vm.so.1
+ELF	7eb0f000-7eb18000	Deferred        libsm.so.6
+ELF	7eb18000-7eb32000	Deferred        version<elf>
+  \-PE	7eb20000-7eb32000	\               version
+ELF	7eb32000-7ec87000	Deferred        user32<elf>
+  \-PE	7eb40000-7ec87000	\               user32
+ELF	7ec87000-7ecf1000	Deferred        advapi32<elf>
+  \-PE	7ec90000-7ecf1000	\               advapi32
+ELF	7ecf1000-7ed8f000	Deferred        msvcrt<elf>
+  \-PE	7ed00000-7ed8f000	\               msvcrt
+ELF	7ef8f000-7ef9c000	Deferred        libnss_files.so.2
+ELF	7ef9c000-7efc7000	Deferred        libm.so.6
+ELF	7efc8000-7efe5000	Deferred        libgcc_s.so.1
+ELF	7efe5000-7f000000	Deferred        crtdll<elf>
+  \-PE	7eff0000-7f000000	\               crtdll
+ELF	f73d0000-f73d4000	Deferred        libxinerama.so.1
+ELF	f73d4000-f73d8000	Deferred        libxau.so.6
+ELF	f73da000-f73df000	Deferred        libdl.so.2
+ELF	f73df000-f7591000	Dwarf           libc.so.6
+ELF	f7591000-f75ab000	Dwarf           libpthread.so.0
+ELF	f75ab000-f76ef000	Dwarf           libwine.so.1
+ELF	f7722000-f7728000	Deferred        libuuid.so.1
+ELF	f7729000-f774a000	Deferred        ld-linux.so.2
+ELF	f774a000-f774b000	Deferred        [vdso].so
+Threads:
+process  tid      prio (all id:s are in hex)
+00000008 (D) C:\Perfect World Entertainment\Perfect World International\element\elementclient.exe
+	00000031    0 <==
+	00000035   15
+	00000012    0
+	00000021    0
+	00000045    0
+	00000044    0
+	00000043    0
+	00000038   15
+	00000037    0
+	00000036   15
+	00000034    0
+	00000033    0
+	00000032    0
+	00000027    0
+	00000009    0
+0000000e services.exe
+	0000000b    0
+	00000020    0
+	00000017    0
+	00000010    0
+	0000000f    0
+00000014 winedevice.exe
+	0000001e    0
+	0000001b    0
+	00000016    0
+	00000015    0
+0000001c plugplay.exe
+	00000022    0
+	0000001f    0
+	0000001d    0
+00000023 explorer.exe
+	00000024    0
         </screen>
         <para>
           Steps to debug a crash.  You may stop at any step, but please
@@ -315,17 +492,15 @@ winedbg hl.exe -windowed
         <orderedlist>
           <listitem>
             <para>
-              Get the reason for the crash.  This is usually an access to
-              an invalid selector, an access to an out of range address
-              in a valid selector, popping a segment register from the
-              stack or the like.  When reporting a crash, report this
+              Get the reason for the crash.  This is usually a
+              page fault, an unimplemented function in Wine,
+              or the like. When reporting a crash, report this
               <emphasis>whole</emphasis> crashdump even if it doesn't
               make sense to you.
             </para>
             <para>
-              (In this case it is access to an invalid selector, for
-              <systemitem>%es</systemitem> is <literal>0000</literal>, as
-              seen in the register dump).
+              (In this case it is page fault on write access to 0x00000000.
+              Most likely Wine passed NULL to the Application or the like.)
             </para>
           </listitem>
           <listitem>
@@ -335,23 +510,23 @@ winedbg hl.exe -windowed
               Wine function, rerun Wine with the <parameter>WINEDEBUG=+relay</parameter>
               environment variable set.  This will
               generate quite a lot of output, but usually the reason is
-              located in the last call(s).  Those lines usually look like
+              located in the last calls.  Those lines usually look like
               this:
             </para>
             <screen>
-|Call KERNEL.90: LSTRLEN(0227:0692 "text") ret=01e7:2ce7 ds=0227
-      ^^^^^^^^^  ^       ^^^^^^^^^ ^^^^^^      ^^^^^^^^^    ^^^^
-      |          |       |         |           |            |Datasegment
-      |          |       |         |           |Return address
-      |          |       |         |textual parameter
-      |          |       |
-      |          |       |Argument(s).  This one is a win16 segmented pointer.
-      |          |Function called.
-      |The module, the function is called in.  In this case it is KERNEL.
-
-|Ret  KERNEL.90: LSTRLEN() retval=0x0004 ret=01e7:2ce7 ds=0227
-                                  ^^^^^^
-				  |Returnvalue is 16 bit and has the value 4.
+000d:Call advapi32.RegOpenKeyExW(00000090,7eb94da0 L"Patterns",00000000,00020019,0033f968) ret=7eb39af8
+^^^^      ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
+|         |        |             |                 |           |                           |Return address.
+|         |        |             |                 |           |More arguments.
+|         |        |             |                 |Textual parameter.
+|         |        |             |Arguments.
+|         |        |Function called.
+|         |The module, the function is called in.
+|The Thread ID in which the call was made.
+
+000d:Ret  advapi32.RegOpenKeyExW() retval=00000000 ret=7eb39af8
+                                   ^^^^^^^^^^^^^^^
+                                   |Returnvalue is 32-bit and has the value 0.
             </screen>
           </listitem>
           <listitem>
@@ -409,7 +584,7 @@ winedbg hl.exe -windowed
               You can also set a breakpoint for that function.  Start wine 
               using <command>winedbg</command> instead of 
               <command>wine</command>.  Once the debugger is running enter 
-              <command>break</command> <parameter>KERNEL_LSTRLEN</parameter>
+              <command>break</command> <parameter>RegOpenKeyExW</parameter>
               (replace by function you want to debug, CASE IS RELEVANT) 
               to set a breakpoint.  Then
               use <command>continue</command> to start normal
-- 
1.8.1.2




More information about the wine-patches mailing list