Re: CINT/C++ langage compliance; Misc. Root NT bugs

Rene Brun (Rene.Brun@cern.ch)
Mon, 06 Jul 1998 11:19:16 +0200


Jonathan M. Gilligan wrote:
>
> This is a really low priority item, but the CINT parser does not understand
> the standard C++ const_cast, static_cast, etc. operators. Ultimately, it
> would be nice to implement these parts of the language.
>

Hi Jonathan,
Masa has already answered this part. Support for these operators
will probably be included in the next version.

> Also, with somewhat greater urgency, I find some consistent ways to crash
> root with attempts to read null or invalid pointers:
>
> 1) Under Windows NT, Root 2.00/08 or /09, run demos.C;
> open the root browser window;
> double click on the "Rint" icon on the tree view;
> double click on "Global Variables";
> click on any of the "notepad" shaped icons (e.g., kTRUE).
>
> Windows terminates root, reporting:
>
> The instruction at "0x006c29ea" references memory at "0x00000000". The
> memory could not be "read".
>
> The Root console reports
>
> Warning in <TClass::TClass>: no dictionary for class TWin32BrowserImp
> available
> Error in <TWin32BrowserImp::CreateWindowsObject>: Dead lock !!!
>
> This kind of thing happens with almost any object I click on in the browser
> that has a notepad shaped icon.

We are aware of several instabilities of the browser under NT.
In the version 2, the Root browser and Canvas graphics under NT
is still the old interface. We are planning to upgrade the graphics
part under NT to use the new GUI classes as it is the case under X11,
This, however, will take some time. Our NT expert, Valery Fine,
is currently working at BNL with the STAR collaboration and he has no
time now to work on this interface.

>
> 2) Include a file with a preprocessor definition such as
>
> #if !defined(AFX_MODELDATA_H__264D89C5_128D_11D2_8318_00104B2C41FC__INCLUDED_)
> #define AFX_MODELDATA_H__264D89C5_128D_11D2_8318_00104B2C41FC__INCLUDED_
>
> If the name is too long for Root's symbol table to handle, it should fail
> gracefully. Instead, root flails with invalid pointers and Windows NT
> terminates it, reporting: '
>
> The instruction at "0x5f444544" referenced memory at "0x5f444544". The
> memory could not be "read"
>
> However, it doesn't hurt me to shorten the names, at which point the code
> works fine within CINT.

Already answered by Masa.

>
> 3) With less consistency, I frequently get crashes if I have been doing a
> lot of interactive editing of canvases using the editor tools. I don't yet
> have a good reproducible recipe for getting this behavior.
>
> I hope these reports are helpful. Thanks again to the Root team and
> everyone else who has contributed to making Root the fine tool it is.
>

Very likely, these problems are connected with the NT version.
The instabilities are frequently due to timing problems in
messages between the Canvas Thread and the main Thread.

Rene Brun