This is a discussion on ExmCxx-Widget (SEGV) - Motif ; 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++ ...
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
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: XtInitializeWidgetClass+0x0118: ld [%o0], %o0
Current function is make_simple_widgets
 XtInitializeWidgetClass(0xff0f6130, 0xff0f5cc0, 0xff0f2000,
0xff0f5978), at 0xff0a357c
 _XtCreateWidget(0x0, 0x35a54, 0xffbeedb4, 0x0, 0x0, 0x0), at
 XtCreateManagedWidget(0x24656, 0x0, 0xffbeedb4, 0x0, 0x0,
0x35a54), at 0xff0afe2c
=> make_simple_widgets(parent = 0xffbeedb4), line 105 in
 main(argc = 1, argv = 0xffbeedac), line 180 in "CxxSimpleDemo.cxx"
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?