[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: debugger: loading of pdb
From:       Ulrich Weigand <weigand () immd1 ! informatik ! uni-erlangen ! de>
Date:       2000-10-29 22:45:23
[Download RAW message or body]


Juergen Schmied wrote:

> some symboles are still read wrong.
> Example:
> right adress is 0x76b0a5cd GetOpenFileNameA
> 
> our debugger reads:
> adding symbol (__GetOpenFileNameA@4) from file '(null)' at 0x0000:77c7e186 \
> flag:0x00000003 adding symbol (??_C@_0BB@HMMD@GetOpenFileNameA?$AA@) from file \
> '(null)' at 0x0000:77c61c98 flag:0x00000003 adding symbol (_GetOpenFileNameA@4) \
> from file '(null)' at 0x0000:76b06ec2 flag:0x00000003 (all wrong)
> 
> adding symbol (COMDLG32.DLL.GetOpenFileNameA) from file '(null)' at 0x0000:76b0a5cd \
> flag:0x00000002 (right)
> 
> this pollutes the adressspace with many invalid symboles. I'm still checking it. \
> Think some of the pbd related structures in msc.c are not completely right. (as \
> example the timestamp is never OK.)

Hmmm.  It would appear that these .DBG files carry OMAP data.
To quote Matt Pietrek (http://www.microsoft.com/msj/0597/hood0597.htm):

    Yet another form of debug information is relatively new and
  undocumented, except for a few obscure references in WINNT.H and the
  Win32 SDK help. This type of information is known as OMAP.
  Apparently, as part of Microsoft's internal build procedure, small
  fragments of code in EXEs and DLLs are moved around to put the most
  commonly used code at the beginning of the code section. This
  presumably keeps the process memory working set as small as possible.
  However, when shifting around the blocks of code, the corresponding
  debug information isn't updated. Instead, OMAP information is created.
  It lets symbol table code translate between the original address in a
  symbol table and the modified address where the variable or line of code
  really exists in memory.


I'll have a look whether I can figure out the format of the OMAP data,
and add the corresponding mapping to the Wine debugger ...


Bye,
Ulrich


-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic