diff --git a/documentation/debugger.sgml b/documentation/debugger.sgml index 98f19f2c50e..82e5313000b 100644 --- a/documentation/debugger.sgml +++ b/documentation/debugger.sgml @@ -271,8 +271,9 @@ winedbg "hl.exe -windowed" This file describes where to start debugging Wine. If at any point you get stuck and want to ask for help, please read the - file documentation/bugreports for - information on how to write useful bug reports. + How to Report A Bug section of the + Wine Users Guide for information on how to write + useful bug reports. @@ -311,8 +312,7 @@ winedbg "hl.exe -windowed" Steps to debug a crash. You may stop at any step, but please report the bug and provide as much of the information - gathered to the newsgroup or the relevant developer as - feasible. + gathered to the bug report as feasible. @@ -362,17 +362,26 @@ winedbg "hl.exe -windowed" If you have found a misbehaving function, try to find out why it misbehaves. Find the function in the source code. Try to make sense of the arguments passed. Usually there is - a TRACE(<channel>,"(...)\n"); at - the beginning of the function. Rerun wine with + a WINE_DEFAULT_DEBUG_CHANNEL(<channel>); + at the beginning of the file. Rerun wine with -debugmsg +xyz,+relay added to the commandline. + + Occasionally there are additional debug channels defined at the + begining of the file in the form. + WINE_DECLARE_DEBUG_CHANNEL(<channel>); + If so the offending fuction may also uses one of these alternate + channels. Look through the the function for + TRACE_(<channel>)(" ... /n"); and add any + additional channels to the commandline. + Additional information on how to debug using the internal debugger can be found in - debugger/README. + programs/winedbg/README. @@ -386,29 +395,25 @@ winedbg "hl.exe -windowed" - If even that isn't enough, add more debug output for - yourself into the functions you find relevant. See - documentation/debug-msgs. You might + If even that isn't enough, add more debug output for yourself + into the functions you find relevant. See The section on Debug + Logging in this guide for more information. You might also try to run the program in gdb instead of using the WINE-debugger. If you do that, use handle SIGSEGV nostop noprint to disable the handling of seg faults inside - gdb (needed for Win16). If you don't use - the --desktop or - --managed option, start the WINE - process with --sync, or chances are - good to get X into an unusable state. + gdb (needed for Win16). - You can also set a breakpoint for that function. Start wine - with the --debug option added to the - commandline. After loading the executable wine will enter - the internal debugger. Use break - KERNEL_LSTRLEN (replace by function you want - to debug, CASE IS RELEVANT) to set a breakpoint. Then use - continue to start normal + You can also set a breakpoint for that function. Start wine + useing winedbg instead of + wine. Once the debugger is is running enter + break KERNEL_LSTRLEN + (replace by function you want to debug, CASE IS RELEVANT) + to set a breakpoint. Then + use continue to start normal program-execution. Wine will stop if it reaches the breakpoint. If the program isn't yet at the crashing call of that function, use continue again @@ -425,6 +430,7 @@ winedbg "hl.exe -windowed" Program hangs, nothing happens + Fix me - this is out of date Switch to UNIX shell, get the process-ID using ps -a | grep wine, and do a kill -HUP <pid> (without the < and >). Wine will @@ -449,8 +455,7 @@ winedbg "hl.exe -windowed" Since the failure happens usually directly before setting up - the Messagebox you can start wine with - --debug added to the commandline, set a + the Messagebox you can start winedbg and set a breakpoint at MessageBoxA (called by win16 and win32 programs) and proceed with continue. With --debugmsg