possible memory corruption

Tony Lambregts tony_lambregts at telusplanet.net
Tue Dec 10 14:52:31 CST 2002


steve.lustbader at philips.com wrote:

>
>  
>
>>>>>>>>"steve" == steve lustbader <steve.lustbader at philips.com> writes:
>>>>>>>>                
>>>>>>>>
>>>   steve> When I try to load a window in my app that has a treeview in it,
>>>   steve> it crashes immediately, before the window even gets displayed.
>>>   steve> This is the end of the backtrace:
>>>
>>>Try running with native commctrl to see if the corruption comes from our
>>>commctrl implementation. Then run with --debugmsg +relay,+heap. Wine will
>>>check on every heap manipulation to see if the heap is still okay. Then
>>>look what corrupted the heap.
>>>      
>>>
>>It works fine with a native (WinXP) comctl32.dll.  I'll post the +relay,+heap
>>output shortly.
>>
>>    
>>
>
>Is there a way to turn debug output on/off?  I don't get the heap corruption
>until my app starts and I open a specific window, but it takes forever for my
>app to start using +relay,+heap.  I don't need the output at first, since
>everything is fine in the beginning, so I'd like to be able to turn the debug
>output on just before I open the window that causes the problem.
>
>  
>
There are two ways to do this
1) Adding it into a function using software
    
   It is possible to turn on or off debuging for a class or channel
   using a software call in a funtion. The call to use is
   wine_dbg_parse_options(+|-class]|[+|-channel]")
 
   Examples:
 
wine_dbg_parse_options("+ddraw")

          this will turn on the trace, warn, err and fixme class 
messages for the
          ddraw channel.

wine_dbg_parse_options("warn+ddraw")

          this will turn on the warn class messages for the ddraw channel.

            Please note that relay is not an ordinary  channel
            and is treated differently by wineserver. In order for
            relay to function there is some work that needs to be done at
            startup. So one way to get it to work properly would is to start
            with the program with -debugmsg +relay turn it off with
            wine_dbg_parse_options, and then turn
            it on again when needed.
         
2) Turning on/off Debug channels and classes in the debugger
       
          It is possible to turn on and of debugging output from within the
          debugger using the set command. Using this technique has the
          advantage of reducing the size of the debug log.

    Examples:

set +gdi</parameter>

         This will turn on messages for all calls to gdi channel.

set warn+draw

         This will turn on all messages of the class warn on the channel 
ddaw.

warning:

       If you start the program with winedbg -debugmsg +(channel)
       calls from the debugger will be logged  which is not what you want.
      Therefore, If you need to start logging messages as the program
       starts you can start the program with wine and attach to the
       program with the debugger.
 

*****
Yes this will be part of the documentation at some point.<grin>

-- 

Tony Lambregts






More information about the wine-devel mailing list