I'm trying to play with the C++ implementation of the Exm widget set
(ExmCxx & XmCxx), found in the demos/lib folder of the OpenMotif-source
distribution.

So far I tried to compile the sources with SUNs C++ Compiler and GNUs
g++ compiler. No problems with the appropiate libraries (i.e. -lXm -lXt
-lX11), besides warning about String literals converted to char* and
some Anachronisms with extern "C" it compiles fine.
Whilst everything works fine with the C-version of this Widgets
(i.e Exm), trying with the ExmCxx-Widgets gives me SEGV. Debugging it,
it always crashes in
XtCreateWidget("Simple", exmCxxSimpleWidgetClass, .....)

signal SEGV (no mapping at the fault address) in XtInitializeWidgetClass at
0xff0a357c
0xff0a357c: XtInitializeWidgetClass+0x0118: ld [%o0], %o0
Current function is make_simple_widgets
(dbx) where
[1] XtInitializeWidgetClass(0xff0f6130, 0xff0f5cc0, 0xff0f2000,
x35a54, 0x1,
0xff0f5978), at 0xff0a357c
[2] _XtCreateWidget(0x0, 0x35a54, 0xffbeedb4, 0x0, 0x0, 0x0), at
0xff0ab1b4
[3] XtCreateManagedWidget(0x24656, 0x0, 0xffbeedb4, 0x0, 0x0,
0x35a54), at 0xff0afe2c
=>[4] make_simple_widgets(parent = 0xffbeedb4), line 105 in
"CxxSimpleDemo.cxx"
[5] main(argc = 1, argv = 0xffbeedac), line 180 in "CxxSimpleDemo.cxx"
(dbx)

With breakpoints in the ctors of the ExmCxx-Widgets I can see that they
are called. So there are instances loaded into Memory.
Also asserting the WidgetClass tells me that they are pointing to something.

But why does the XtCreateWidget call fail? Normally I would expect that
the ExmCxxSimple::initialize member-function would be called.


How can I debug these do better understand what happens?


best regards
matthias