winedbg patch to support C++ "class::method" identifiers

Tijs van Bakel tijs at connectux.com
Wed Mar 20 08:08:25 CST 2002


Eric Pouech <eric.pouech at wanadoo.fr> writes:

> tijs at connectux.com (Tijs van Bakel) writes:
> 
> > This one-line patch makes it possible to set breakpoints for C++
> > functions in the Wine debugger.

> Two points. First of all, C++ symbols can be in the form A::B::C,
> and even ::A::B...

As the parsing is applied recursively, "A::B::C" is handled correctly.
You are right however that "::A" is not parsed correctly with my
simple approach.  In order to do so, it would be sufficient to add the
following rule:

    | ':' ':' tIDENTIFIER { $$ = $3; }

Perhaps there's a more elegant method.

> But more important, which symbols do you think will be visible with
> only this patch ?
> C++ stabs will not be entered as A::B string
> I doubt MSC will behave differently
> I'd like to know if you really succeeded in setting a bp on a C++ method 

I did succeed.  It works for both class and namespace scoping.  I
tried a simple C++ program with MS Visual C++ 6.0, and it works fine.

Thanks for your feedback.

-- 
Tijs van Bakel, ConnecTUX, <tijs at connectux.com>



More information about the wine-devel mailing list