Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-debug-dev] CDT Win32 Debugger

Cool, I have no problem with using dbghelp over dbgeng if that’s what you feel comfortable with. The dbgeng calls end up calling dbghelp anyway. For me it just seemed a higher level and I was looking for shortcuts J. But I think dbghelp is more powerful.

 

Cheers,

Doug

 

 


From: cdt-debug-dev-bounces@xxxxxxxxxxx [mailto:cdt-debug-dev-bounces@xxxxxxxxxxx] On Behalf Of Matthew Ballance
Sent: Monday, October 03, 2005 3:50 PM
To: cdt-debug-dev
Subject: Re: [cdt-debug-dev] CDT Win32 Debugger

 

Incidently, one of the more useful sites with info on the dbghelp API is: http://www.debuginfo.com

The Win32 SDK documentation is helpful for detailed information about specific functions, but doesn't provide much of a 'big picture'.

-Matthew

On 10/3/05, Matthew Ballance <matt.ballance@xxxxxxxxx> wrote:

Mikhail,
 
    I have read of some differences between older OS-supplied dbghelp library versions and the newer version supplied by the Debug tools. >From my experiments, it seemed that the current release of dbghelp works well.

    dbghelp simply provides access to the debug information in PDB format. Breakpoints, for example, are set by inserting a breakpoint instruction (int 3) in memory.

    My 'big picture' goal for this project is to provide a debugger that works with two compiler toolchains that are commonly used on Windows: GCC and Visual C++. I use both (depending on what I'm working on) in my work and extracurricular activities. I would like to not have to choose my debugger based on the compiler I'm currently using (it gets more complicated when I'm using a library compiled with one toolchain with an app compiled with the other toolchain. Which debugger should I use?). My thought is that I can use the dbghelp library to provide access to the PDB debugging information and access the dwarf debug info using some other API (there are native APIs and - possibly - enough functionality in a Java API). This way, I can debug my application regardless of which toolchain was used. I doubt that I could do this if I used the dbgeng API.  In addition, from my searching on the web, dbghelp has much more information and examples that dbgeng.

    I suppose it remains to be seen whether others think a 'dual-toolchain' debugger is useful... Feedback on this point is especially appreciated.


Regards,
Matthew



On 10/3/05, Mikhail Khodjaiants <mikhailk@xxxxxxx > wrote:

Matthew,

Please, see my comments inline.

----- Original Message -----
From: "Matthew Ballance" < matt.ballance@xxxxxxxxx>
To: "Mikhail Khodjaiants" < mikhailk@xxxxxxx>
Cc: "CDT Debug developers list" < cdt-debug-dev@xxxxxxxxxxx>
Sent: Monday, October 03, 2005 11:07 AM
Subject: Re: [cdt-debug-dev] CDT Win32 Debugger


>
> Hi Mikhail,
>    Thanks for the feedback on dbghelp. Can you provide any specifics on
> differences you saw between versions?

As I mentioned, it was almost two years ago. I had different Windows
versions on my machines and it took some time to figure out why it didn't
work.
Doug has done much more, but as far as I know there are problems with such a
basic task as the breakpoint setting.

>    There are two reasons that I'm reluctant to use dbgeng: It's not
> redistributable and I think it would be more difficult to support
> debugging both Visual Studio and GCC-compiled applications (as I
> understand it, dbgeng contains both symbol-table and debugger
> functionality. It would, for example, be difficult to insert debug info
> from GCC-compiled objects).
>

What do you mean by  "insert debug info from GCC-compiled objects"?

>    Since dbghelp is redistributable, would specifying a supported
> version of dbghelp and shipping that version with binary releases of the
> debugger solve any problems? Can you see problems with this approach
> (practical or legal)?
>

I'm definitely not an expert in the legal issues, but in any cases the whole
toolchain has to be installed.

>    I appreciate your input!
>
> Regards,
> Matthew
>
>
> On 10/3/05, Mikhail Khodjaiants < mikhailk@xxxxxxx
> <mailto: mikhailk@xxxxxxx> > wrote:
>
> Matthew,
>
> I played with the Win32 API and DbgHelp library a couple of years ago
> and I
> had problems with different versions of DbgHelp. As Doug pointed out in
> one
> of his postings to this list it is worth to look at DbgEng.dll instead
> of
> DbgHelp.
>
> Regards,
> Mikhail Khodjaiants
>
> ----- Original Message -----
> From: "Matthew Ballance" < matt.ballance@xxxxxxxxx
> <mailto: matt.ballance@xxxxxxxxx> >
> To: "cdt-debug-dev" < cdt-debug-dev@xxxxxxxxxxx
> <mailto:cdt-debug-dev@xxxxxxxxxxx> >
> Sent: Friday, September 30, 2005 7:39 PM
> Subject: [cdt-debug-dev] CDT Win32 Debugger
>
>
>> Hi all,
>>
>>    I've started work on a CDT win32 debugger using the 'dbghelp'
>> library supplied by Microsoft. This work builds on the
>> org.eclipse.cdt.debug.win32.core and org.eclipse.cdt.debug.win32.ui
>> plugins started by Doug Schaefer (and others?).
>>
>>    The primary goal of the project is to support debugging of
>> applications compiled with the Microsoft compiler. The debug format
> used
>> by the Microsoft compiler is proprietary and undocumented. Microsoft
>> supplies the dbghelp library to provide access to the debug
> information
>> emitted by its compiler. The library is freely-distributable, which is
>> important (at least to me): An important requirement of this debugger
> is
>> that all components can be distributed with the debugger. The user
>> should not need to install extra components if at all possible.
>>
>>    A secondary goal of the project is to create a debugger that can
>> debug applications compiled with GCC as well as with the Microsoft
>> compiler. This goal will be tackled in phase2 of the project (once all
>> features are supported for Microsoft-compiled apps).
>>
>>    Thus far, I've mainly been doing research to find good sources of
>> information about the Sym API (the API supplied by dbghelp.dll). The
> API
>> is documented in the Microsoft SDK  documentation, but I've found that
>
>> some more involved examples to be very helpful. I've also started
>> prototyping the debugging using what I've learned about walking the
>> stack, accessing local symbols, settings breakpoints, etc.
>>
>>    Since I'm very early in the design and implementation of this
>> project, I would appreciate any feedback that others have. I'm
>> particularly interested to know whether others would be interested in
> a
>> debugger that can debug applications with M.S.-compiled and/or
>> GCC-compiled components.
>>    If others are interested in working on implementation, I would also
>> be interested.
>>
>>
>>
>> Thanks and Regards,
>> Matthew
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>



 


Back to the top