ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

RQT Plugin Crashes with Kinetic Kame

asked 2016-05-26 01:38:22 -0500

danthony gravatar image

updated 2016-05-26 02:37:24 -0500

I recently upgraded to Kinetic Kame from Jade, and a RQT plugin I have written with C++ crashes on every startup. I get the standard message that a process has died, but I do not see anything in the log file. I put ROS_ERROR() messages in the plugin's constructor, but I do not see any output from them. I'm not sure how to attach gdb to the process since it gets launched through a Python script. Does anyone have any suggestions on how to track down the cause of this problem?

Edit: Using Dirk's suggestion I was able to see more information on the crash. I see the following error:

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007fffbe4bc5a4 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4

I then run backtrace and get the following. I'm not sure what to do next.

#0  0x00007fffbe4bc5a4 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#1  0x00007ffff7de74ea in call_init (l=<optimized out>, argc=argc@entry=4, 
    argv=argv@entry=0x7fffffffd8c8, env=env@entry=0xf80890) at dl-init.c:72
#2  0x00007ffff7de75fb in call_init (env=0xf80890, argv=0x7fffffffd8c8, 
    argc=4, l=<optimized out>) at dl-init.c:30
#3  _dl_init (main_map=main_map@entry=0x13f48f0, argc=4, argv=0x7fffffffd8c8, 
    env=0xf80890) at dl-init.c:120
#4  0x00007ffff7dec712 in dl_open_worker (a=a@entry=0x7fffffffada0)
    at dl-open.c:575
#5  0x00007ffff7de7394 in _dl_catch_error (
    objname=objname@entry=0x7fffffffad90, 
    errstring=errstring@entry=0x7fffffffad98, 
    mallocedp=mallocedp@entry=0x7fffffffad8f, 
    operate=operate@entry=0x7ffff7dec300 <dl_open_worker>, 
    args=args@entry=0x7fffffffada0) at dl-error.c:187
#6  0x00007ffff7debbd9 in _dl_open (
    file=0x15a1870 "/home/danthony/ros_workspaces/nimbus_asctec/devel/lib//libnimbus_gui.so", mode=-2147483391, 
    caller_dlopen=0x7fffd118d862 <Poco::SharedLibraryImpl::loadImpl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+82>, nsid=-2, argc=<optimized out>, argv=<optimized out>, env=0xf80890)
    at dl-open.c:660
#7  0x00007ffff75edf09 in dlopen_doit (a=a@entry=0x7fffffffafd0) at dlopen.c:66
---Type <return> to continue, or q <return> to quit---
#8  0x00007ffff7de7394 in _dl_catch_error (objname=0xa62dd0, errstring=0xa62dd8, mallocedp=0xa62dc8, operate=0x7ffff75edeb0 <dlopen_doit>, args=0x7fffffffafd0) at dl-error.c:187
#9  0x00007ffff75ee571 in _dlerror_run (operate=operate@entry=0x7ffff75edeb0 <dlopen_doit>, args=args@entry=0x7fffffffafd0) at dlerror.c:163
#10 0x00007ffff75edfa1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
#11 0x00007fffd118d862 in Poco::SharedLibraryImpl::loadImpl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libPocoFoundation.so.9
#12 0x00007fffd118dd80 in Poco::SharedLibrary::SharedLibrary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libPocoFoundation.so.9
#13 0x00007fffd1c754a9 in class_loader::class_loader_private::loadLibrary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, class_loader::ClassLoader*) () from /opt/ros/kinetic/lib/libclass_loader.so
#14 0x00007fffd1c6f9ca in class_loader::ClassLoader::loadLibrary() () from /opt/ros/kinetic/lib/libclass_loader.so
#15 0x00007fffd1c6fbd8 in class_loader::ClassLoader::ClassLoader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) () from /opt/ros/kinetic/lib/libclass_loader.so
#16 0x00007fffd1c796a1 in class_loader::MultiLibraryClassLoader::loadLibrary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt ...
(more)
edit retag flag offensive close merge delete

Comments

You can run it with: gdb --args python which rqt

Dirk Thomas gravatar image Dirk Thomas  ( 2016-05-26 02:14:01 -0500 )edit

Since Dirks command is a bit screwed by markdown: gdb --args python $(which rqt)

Felix Widmaier gravatar image Felix Widmaier  ( 2017-08-10 07:00:31 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
1

answered 2016-05-26 08:12:14 -0500

Dirk Thomas gravatar image

It looks like your plugin is linked against Qt 4. In Kinetic your plugin must use Qt 5.

edit flag offensive delete link more

Comments

I used the visualization_tools package CMakeLists and package.xml as a reference and got my project to build and launch with Qt5. The only problem was I still had to call qt5_wrap_cpp and qt5_wrap_ui even with CMAKE_AUTOMOC set, but that seems minor.

danthony gravatar image danthony  ( 2016-05-26 10:52:26 -0500 )edit
0

answered 2016-05-26 09:00:12 -0500

inflo gravatar image

to build with qt5 i only can say this, but i also failed at building qt5 software for kinetic link text

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2016-05-26 01:38:22 -0500

Seen: 546 times

Last updated: May 26 '16