[Marble-devel] segfault with an example using current svn

Arnd Baecker arnd.baecker at web.de
Thu Oct 2 07:53:02 CEST 2008


Hi marble experts!

I am trying to get a test working which used to compile (and run)
fine about 2 months ago
I put http://pastebin.com/m78585f3e into marble/tests
and added marble_add_test( MarbleWidgetTest2 ) to CMakeLists.txt
The compile works, but gives this warning/error:

 [101%] Generating MarbleWidgetTest2.moc

/NBB/INSTALL_SOFTWARE/Marble/MarbleOSMTest/marble/tests/MarbleWidgetTest2.cpp:0:
Warning: No relevant classes found. No output generated.
 [101%] Building CXX object
tests/CMakeFiles/MarbleWidgetTest2.dir/MarbleWidgetTest2.o
 Linking CXX executable MarbleWidgetTest2


Starting the resulting executable gives: http://pastebin.com/m11f07fb1

The crash happens in
0xb7ded2c6 in Marble::GeoDataGeometry::setAltitudeMode ()
   from
/NBB/INSTALL_SOFTWARE/Marble/MarbleOSMTest/marble/src/lib/libmarblewidget.so.6
so commenting out the `marble.addPlaceMarkData(kml);` leads to a working
code!
Note that the kml passed in http://pastebin.com/m78585f3e contains the
line `<altitudeMode>clampToGround</altitudeMode>`.
Removing this line, gives a segfault in
0xb7dd6276 in Marble::GeoDataGeometry::setExtrude ()
Removing the `<extrude>1</extrude>` leads to a segfault in
0xb7dfbc13 in Marble::MarbleGeometryModel::Private::mapFeature ().

Maybe I am doing something wrong with this example, but
as this used to work in the past it seems like a regression to me.
((BTW: also the src/lib/tests/KMLTest segfaults for me, this one in
0xb7d9bc4e in Marble::GeoDataPlacemark::pack () )).
Can you reproduce any of these crashes?

Concerning the examples/test in marble/src/lib/tests:
If I remember correctly, MarbleWidgetTest.cpp used to be an
example, which could be started to display a simple map widget,
it seems that now it "just" does a unit test.

I think it would be good, if a stand-alone example for minimal
marble usage was in svn; eg., http://pastebin.com/m78585f3e
might (in principle) be helpful.
Note that this is only a slight modification of some previous
marble/src/lib/tests/MarbleWidgetTest.cpp
(which is now a bit different).

Torsten suggested that I add this to
http://techbase.kde.org/Development/Tutorials/MarbleWidget
This is fine for me, even though I don't know enough of cmake
to make this fully stand-alone
(i.e. I only know how to put this into marble/tests and
add the corresponding line into CMakeLists.txt).

So should I just go ahead and add it at the end of the Tutorial,
or do you have any other suggestions?

Best,

Arnd


More information about the Marble-devel mailing list