Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rviz segfaults when node that publishes marker crashes (ros-pkg ticket #4463) #356

Closed
hershwg opened this issue Sep 19, 2012 · 7 comments
Closed
Labels

Comments

@hershwg
Copy link
Member

hershwg commented Sep 19, 2012

I've got a simple node that publishes a marker to rviz. Whenever I kill the node with "ctrl-c", rviz segfaults and crashes. I'm sure I have a problem with my node, that I will fix, but it looks like rviz doesn't like it when a publisher hangs up on it.

My package "sticky_marker" is attached. To duplicate this failure,

  • "rosmake sticky_marker" and "rosrun sticky_marker sticky_marker".
  • Start rviz and add a marker to the display with the topic "erratic_pose_marker".
  • Press "ctrl-c" in the "sticky_marker" window

rviz output below:
{{{
$ rosrun rviz rviz
[ INFO] [1285917248.573214978]: Loading general config from [/home/wgtest/.rviz/config]
[ INFO] [1285917248.573802483]: Loading display config from [/home/wgtest/.rviz/display_config]
[ WARN] [1285917249.734839707, 1127.200000000]: Message from [/stageros] has a non-fully-qualified frame_id [base_laser_link]. Resolved locally to [/base_laser_link]. This is will likely not work in multi-robot systems. This message will only print once.
[ WARN] [1285917329.358039007, 1206.900000000]: Message from [/sticky_1285917329053921114] has a non-fully-qualified frame_id [odom]. Resolved locally to [/odom]. This is will likely not work in multi-robot systems. This message will only print once.
[ WARN] [1285917360.963096573, 1238.500000000]: Message from [/sticky_1285917329053921114] has a non-fully-qualified frame_id [odom]. Resolved locally to [/odom]. This is will likely not work in multi-robot systems. This message will only print once.
/opt/ros/cturtle/ros/bin/rosrun: line 35: 11131 Segmentation fault $exepath "$@"

}}}

Tarball of sticky_marker package and rviz configuration files are attached. Using deb build of ROS cturtle, 1.2.1, visualization 1.2.0.

trac data:

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[watts] I probably should've noted that I'm using stage as an erratic simulator.

{{{
roscd stage
./bin/stageros world/willow-erratic.world
}}}

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[jfaust] backtrace?

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[watts] I managed to reproduce this problem on my desktop, here is the backtrace:

{{{
(gdb) bt
#0 0x00007f3b278ac76f in ?? () from /usr/lib/libGL.so.1
#1 0x00007f3b278acb69 in ?? () from /usr/lib/libGL.so.1
#2 0x00007f3b278b12cb in ?? () from /usr/lib/libGL.so.1
#3 0x00007f3b278b187c in ?? () from /usr/lib/libGL.so.1
#4 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#5 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()
}}}

{{{

Thread 16 (Thread 21416):
#0 0x00007f3b3207985c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f3b2ee9c66e in boost::condition_variable::wait (
this=)
at /usr/include/boost/thread/pthread/condition_variable.hpp:20
#2 ros::ROSOutAppender::logThread (this=)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/rosout_appender.cpp:133
#3 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#4 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#5 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#6 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()

Thread 15 (Thread 21410):
#0 0x00007f3b2a4abf83 in poll () from /lib/libc.so.6
#1 0x00007f3b2bec78b4 in ?? () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#2 0x00007f3b27b5f4a9 in ?? () from /lib/libglib-2.0.so.0
#3 0x00007f3b27b5fc55 in g_main_loop_run () from /lib/libglib-2.0.so.0
#4 0x00007f3b29eebbb7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#5 0x00007f3b2bedf9c8 in wxEventLoop::Run() ()
from /usr/lib/libwx_gtk2u_core-2.8.so.0
#6 0x00007f3b2bf648eb in wxAppBase::MainLoop() ()
---Type to continue, or q to quit---
from /usr/lib/libwx_gtk2u_core-2.8.so.0
#7 0x00007f3b2b5f944c in wxEntry(int&, wchar_t**) ()
from /usr/lib/libwx_baseu-2.8.so.0
#8 0x0000000000413b62 in main (argc=1, argv=0x4)
at /opt/ros/cturtle/stacks/visualization/rviz/src/rviz/visualizer_app.cpp:321

Thread 14 (Thread 21426):
#0 0x00007f3b3207985c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f3b32727862 in boost::condition_variable_any::waitboost::unique_lock<boost::recursive_mutex > (this=0x7f3b18565770, m=...)
at /usr/include/boost/thread/pthread/condition_variable.hpp:84
#2 0x00007f3b32725aef in Ogre::DefaultWorkQueue::waitForNextRequest (
this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:163
#3 0x00007f3b327262dc in Ogre::DefaultWorkQueue::_threadMain (this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:191
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()

Thread 13 (Thread 21425):
#0 0x00007f3b3207985c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f3b32727862 in boost::condition_variable_any::waitboost::unique_lock<boost::recursive_mutex > (this=0x7f3b18565770, m=...)
at /usr/include/boost/thread/pthread/condition_variable.hpp:84
#2 0x00007f3b32725aef in Ogre::DefaultWorkQueue::waitForNextRequest (
this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:163
#3 0x00007f3b327262dc in Ogre::DefaultWorkQueue::_threadMain (this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:191
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()

Thread 12 (Thread 21427):
#0 0x00007f3b3207985c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f3b32727862 in boost::condition_variable_any::waitboost::unique_lock<boost::recursive_mutex > (this=0x7f3b18565770, m=...)
---Type to continue, or q to quit---
at /usr/include/boost/thread/pthread/condition_variable.hpp:84
#2 0x00007f3b32725aef in Ogre::DefaultWorkQueue::waitForNextRequest (
this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:163
#3 0x00007f3b327262dc in Ogre::DefaultWorkQueue::_threadMain (this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:191
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()

Thread 11 (Thread 21441):
#0 0x00007f3b32079bc9 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x00007f3b2ee6ac17 in bool boost::condition_variable::timed_wait<boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000l> >(boost::unique_lockboost::mutex&, boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000l> const&) () from /opt/ros/cturtle/ros/core/roscpp/lib/libros.so
#2 0x00007f3b2eeb4a61 in ros::TimerManager<ros::Time, ros::Duration, ros::TimerEvent>::threadFunc() () from /opt/ros/cturtle/ros/core/roscpp/lib/libros.so
---Type to continue, or q to quit---
#3 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#4 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#5 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#6 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()

Thread 10 (Thread 21434):
#0 0x00007f3b32079bc9 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x00007f3b2eea5497 in bool boost::condition_variable::timed_wait<boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> >(boost::unique_lockboost::mutex&, boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> const&) () from /opt/ros/cturtle/ros/core/roscpp/lib/libros.so
#2 0x00007f3b2eea2594 in ros::CallbackQueue::callOne (this=0x2123198, timeout=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/callback_queue.cpp:231
#3 0x00007f3b2d3bfa72 in rviz::VisualizationManager::threadedQueueThreadFunc (
this=0x2123120)
at /opt/ros/cturtle/stacks/visualization/rviz/src/rviz/visualization_manager.cpp:1085
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
---Type to continue, or q to quit---
#8 0x0000000000000000 in ?? ()

Thread 9 (Thread 21435):
#0 0x00007f3b32079bc9 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x00007f3b2eea5497 in bool boost::condition_variable::timed_wait<boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> >(boost::unique_lockboost::mutex&, boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> const&) () from /opt/ros/cturtle/ros/core/roscpp/lib/libros.so
#2 0x00007f3b2eea2594 in ros::CallbackQueue::callOne (this=0x2123198, timeout=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/callback_queue.cpp:231
#3 0x00007f3b2d3bfa72 in rviz::VisualizationManager::threadedQueueThreadFunc (
this=0x2123120)
at /opt/ros/cturtle/stacks/visualization/rviz/src/rviz/visualization_manager.cpp:1085
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()

Thread 8 (Thread 21433):
#0 0x00007f3b32079bc9 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
---Type to continue, or q to quit---
from /lib/libpthread.so.0
#1 0x00007f3b2eea5497 in bool boost::condition_variable::timed_wait<boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> >(boost::unique_lockboost::mutex&, boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> const&) () from /opt/ros/cturtle/ros/core/roscpp/lib/libros.so
#2 0x00007f3b2eea2594 in ros::CallbackQueue::callOne (this=0x2123198, timeout=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/callback_queue.cpp:231
#3 0x00007f3b2d3bfa72 in rviz::VisualizationManager::threadedQueueThreadFunc (
this=0x2123120)
at /opt/ros/cturtle/stacks/visualization/rviz/src/rviz/visualization_manager.cpp:1085
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()

Thread 7 (Thread 21424):
#0 0x00007f3b3207985c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f3b32727862 in boost::condition_variable_any::waitboost::unique_lock<boost::recursive_mutex > (this=0x7f3b18565770, m=...)
at /usr/include/boost/thread/pthread/condition_variable.hpp:84
#2 0x00007f3b32725aef in Ogre::DefaultWorkQueue::waitForNextRequest (
---Type to continue, or q to quit---
this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:163
#3 0x00007f3b327262dc in Ogre::DefaultWorkQueue::_threadMain (this=0x7f3b18565398)
at /opt/ros/cturtle/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:191
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()

Thread 6 (Thread 21423):
#0 0x00007f3b32079bc9 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x00007f3b2eea5497 in bool boost::condition_variable::timed_wait<boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> >(boost::unique_lockboost::mutex&, boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> const&) () from /opt/ros/cturtle/ros/core/roscpp/lib/libros.so
#2 0x00007f3b2eea1779 in ros::CallbackQueue::callAvailable (this=0x7f3b14002320,
timeout=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at /opt/ros/cturtle/ros/core/roscpp/src/libros/callback_queue.cpp:307
#3 0x00007f3b2ee301a1 in ros::internalCallbackQueueThreadFunc ()
at /opt/ros/cturtle/ros/core/roscpp/src/libros/init.cpp:265
---Type to continue, or q to quit---
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()

Thread 5 (Thread 21436):
#0 0x00007f3b32079bc9 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x00007f3b2eea5497 in bool boost::condition_variable::timed_wait<boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> >(boost::unique_lockboost::mutex&, boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> const&) () from /opt/ros/cturtle/ros/core/roscpp/lib/libros.so
#2 0x00007f3b2eea2594 in ros::CallbackQueue::callOne (this=0x2123198, timeout=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/callback_queue.cpp:231
#3 0x00007f3b2d3bfa72 in rviz::VisualizationManager::threadedQueueThreadFunc (
this=0x2123120)
at /opt/ros/cturtle/stacks/visualization/rviz/src/rviz/visualization_manager.cpp:1085
#4 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#6 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
---Type to continue, or q to quit---
#8 0x0000000000000000 in ?? ()

Thread 4 (Thread 21415):
#0 0x00007f3b2a4b0fe3 in select () from /lib/libc.so.6
#1 0x00007f3b2e970aba in XmlRpc::XmlRpcDispatch::work (this=0x1b30a68,
timeout=)
at /opt/ros/cturtle/ros/3rdparty/xmlrpcpp/src/XmlRpcDispatch.cpp:110
#2 0x00007f3b2ee3e85f in ros::XMLRPCManager::serverThreadFunc (this=0x1b30a10)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/xmlrpc_manager.cpp:256
#3 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#4 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#5 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#6 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()

Thread 3 (Thread 21412):
#0 0x00007f3b2a406b75 in sigtimedwait () from /lib/libc.so.6
#1 0x00000000004158c9 in rviz::VisualizerApp::signalHandler (this=0x1a9c380)
at /opt/ros/cturtle/stacks/visualization/rviz/src/rviz/visualizer_app.cpp:288
#2 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#3 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#4 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#5 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
---Type to continue, or q to quit---
#6 0x0000000000000000 in ?? ()

Thread 2 (Thread 21414):
#0 0x00007f3b2a4abf83 in poll () from /lib/libc.so.6
#1 0x00007f3b2ee0192a in ros::PollSet::update (this=0x1b38ee0, poll_timeout=10)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/poll_set.cpp:202
#2 0x00007f3b2ee43ee5 in ros::PollManager::threadFunc (this=0x1b38ee0)
at /opt/ros/cturtle/ros/core/roscpp/src/libros/poll_manager.cpp:95
#3 0x00007f3b2e534b70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#4 0x00007f3b278b18d3 in ?? () from /usr/lib/libGL.so.1
#5 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#6 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()

Thread 1 (Thread 21453):
#0 0x00007f3b278ac76f in ?? () from /usr/lib/libGL.so.1
#1 0x00007f3b278acb69 in ?? () from /usr/lib/libGL.so.1
#2 0x00007f3b278b12cb in ?? () from /usr/lib/libGL.so.1
#3 0x00007f3b278b187c in ?? () from /usr/lib/libGL.so.1
#4 0x00007f3b320749ca in start_thread () from /lib/libpthread.so.0
#5 0x00007f3b2a4b86fd in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()
}}}

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[jfaust] If that's where it's crashing, that looks a lot like a driver bug. What's your nvidia driver version?

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[jfaust] oh... and following your instructions it works fine with the cturtle debs on my machine. I have a version of the 195.36.31 driver

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[watts] I'm using the nVidia developer drivers on both machines, version 260.24. That could explain this. Once nVidia releases a new version of their driver, I can test it with that to see if the problem goes away. I'm glad this works on the real drivers.

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[jfaust] Definitely a driver problem. See #4461

@hershwg hershwg closed this as completed Sep 19, 2012
emersonknapp pushed a commit to emersonknapp/rviz that referenced this issue Mar 1, 2019
…tionFinder (ros-visualization#356)

To fix the following warnings (converted to errors by compile options):
error: destructor called on non-final 'MockProjectionFinder' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
error: destructor called on non-final 'MockWindowManagerInterface' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant