On 2/24/2013 15:13, Eric Pouech wrote:
> Le 24/02/2013 10:18, Nikolay Sivov a écrit :
>> On 2/24/2013 10:07, Max TenEyck Woodbury wrote:
>>> On 02/23/2013 02:54 AM, Eric Pouech wrote:
>>>> Le 21/02/2013 14:33, Max TenEyck Woodbury a écrit :
>>>>> Would it be appropriate to add a test to the name demangler that:
>>>>>
>>>>> 1) Scans all '.dll' and '.spec' files for mangled names, and
>>>>>
>>>>> 2) Tries to decode those names.
>>>>>
>>>>> 3) Prints the mangled and decoded names and where they occur.
>>>>>
>>>>> Success would be that all names decode without the decoder blowing up
>>>>> or failing.
>>>>>
>>>>>
>>>>>
>>>> adding tests for demangler is good
>>>> but you just need to have a set of mangled/unmangled strings for
>>>> the test
>>>> as core demangler in msvcrt, test should be added here...
>>>> (but grabbing the mangled strings shall be left out of the test
>>>> itself)
>>>> A+
>>>>
>>> One of the important aspects of name demangling is that it should work
>>> on _all_ the names in the current system. The current test does
>>> demangle a list of known strings, but that list was incomplete with
>>> respect to all the features used in real names the last time I dug into
>>> the details (which was none too recently).
>>>
>>> Scanning for all the real mangled names not only makes sure that the
>>> demangler is working properly, it also assures that all the names used
>>> are properly formed and decode to their intended values.
>> I don't see a point to extend test data that much, it's enough to add
>> some most common cases,
>> and add more when something breaks because of it. Otherwise it
>> doesn't deserve that much of attention imho.
>>
>> By the way, do you see something broken or it's just something you
>> want to work on?
>>>
>>>
> there are lots of broken stuff (in msvcrt), and demangler in winedump
> is ante-deluvian (and doesn't share its code with msvcrt)
> A+
Okay, don't know if winedump part is of any use, I mean it tries to
provide a sane C name for decorated names, and usually such names are
hand-crafted anyway later.
Msvcrt being broken is important of course (at least for dbghelp).