More on studying the freecad multiline

I managed to the break points working from with the QT-creator IDE
https://sourceforge.net/apps/phpbb/free-cad/viewtopic.php?f=10&t=2237

I set the breakpoint on void ViewProviderSketch::draw(bool temp) and I was looking at the call stack after I clicked the mouse

0    SketcherGui::ViewProviderSketch::draw    ViewProviderSketch.cpp    1600    0x00007fffd1d4453a
1    SketcherGui::ViewProviderSketch::updateData    ViewProviderSketch.cpp    2639    0x00007fffd1d5045e
2    Gui::ViewProvider::update    ViewProvider.cpp    232    0x00007ffff748391c
3    Gui::Document::slotChangedObject    Document.cpp    434    0x00007ffff72242fe
4    boost::_mfi::mf2<void, Gui::Document, App::DocumentObject const&, App::Property const&>::operator()(Gui::Document*, App::DocumentObject const&, App::Property const&) const    /home/jonas/freecad/free-cad/lib/libFreeCADGui.so    0    0x00007ffff7233826
5    void boost::_bi::list3<boost::_bi::value<Gui::Document*>, boost::arg<1>, boost::arg<2> >::operator()<boost::_mfi::mf2<void, Gui::Document, App::DocumentObject const&, App::Property const&>, boost::_bi::list2<App::DocumentObject const&, App::Property const&> >(boost::_bi::type<void>, boost::_mfi::mf2<void, Gui::Document, App::DocumentObject const&, App::Property const&>&, boost::_bi::list2<App::DocumentObject const&, App::Property const&>&, int)    /home/jonas/freecad/free-cad/lib/libFreeCADGui.so    0    0x00007ffff7232cc8
6    void boost::_bi::bind_t<void, boost::_mfi::mf2<void, Gui::Document, App::DocumentObject const&, App::Property const&>, boost::_bi::list3<boost::_bi::value<Gui::Document*>, boost::arg<1>, boost::arg<2> > >::operator()<App::DocumentObject, App::Property>(App::DocumentObject const&, App::Property const&)    /home/jonas/freecad/free-cad/lib/libFreeCADGui.so    0    0x00007ffff723214e
7    boost::detail::function::void_function_obj_invoker2<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Gui::Document, App::DocumentObject const&, App::Property const&>, boost::_bi::list3<boost::_bi::value<Gui::Document*>, boost::arg<1>, boost::arg<2> > >, void, App::DocumentObject const&, App::Property const&>::invoke(boost::detail::function::function_buffer&, App::DocumentObject const&, App::Property const&)    /home/jonas/freecad/free-cad/lib/libFreeCADGui.so    0    0x00007ffff723131b
8    boost::function2<void, App::DocumentObject const&, App::Property const&>::operator()    function_template.hpp    1013    0x00007ffff6b1efce
9    boost::signals::detail::unusable boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >::operator()<boost::signals::detail::connection_slot_pair>(boost::signals::detail::connection_slot_pair const&) const    signal_template.hpp    119    0x00007ffff6b1d95d
10    boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>::dereference() const    slot_call_iterator.hpp    61    0x00007ffff6b1c0c4
11    boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>::reference boost::iterator_core_access::dereference<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator> >(boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator> const&)    iterator_facade.hpp    517    0x00007ffff6b1a7a6
12    boost::iterator_facade<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long>::operator*() const    iterator_facade.hpp    643    0x00007ffff6b17c06
13    postfix_increment_proxy    iterator_facade.hpp    145    0x00007ffff6b1416c
14    boost::detail::postfix_increment_result<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::signals::detail::unusable const&, boost::single_pass_traversal_tag>::type boost::operator++<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long>(boost::iterator_facade<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long>&, int)    iterator_facade.hpp    732    0x00007ffff6b1042c
15    void boost::last_value<void>::operator()<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator> >(boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound2<void>::caller<App::DocumentObject const&, App::Property const&, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >, boost::signals::detail::named_slot_map_iterator>) const    last_value.hpp    49    0x00007ffff6b0c329
16    boost::signal2<void, App::DocumentObject const&, App::Property const&, boost::last_value<void>, int, std::less<int>, boost::function<void ()(App::DocumentObject const&, App::Property const&)> >::operator()(App::DocumentObject const&, App::Property const&)    signal_template.hpp    354    0x00007ffff6b08a05
17    App::Document::onChangedProperty    Document.cpp    432    0x00007ffff6afaaf7
18    App::DocumentObject::onChanged    DocumentObject.cpp    186    0x00007ffff6b21c88
19    Part::Feature::onChanged    PartFeature.cpp    112    0x00007fffd0ff9b5a
20    Sketcher::SketchObject::onChanged    SketchObject.cpp    1431    0x00007fffd19447a2
21    App::Property::hasSetValue    Property.cpp    94    0x00007ffff6b61e5f
22    Part::PropertyGeometryList::setValues    PropertyGeometryList.cpp    103    0x00007fffd1016335
23    Sketcher::SketchObject::addGeometry    SketchObject.cpp    296    0x00007fffd193d5dc
24    Sketcher::SketchObjectPy::addGeometry    SketchObjectPyImp.cpp    65    0x00007fffd19cc55b
25    Sketcher::SketchObjectPy::staticCallback_addGeometry    SketchObjectPy.cpp    272    0x00007fffd19c8823
26    PyEval_EvalFrameEx    /usr/lib/libpython2.6.so.1.0    0    0x00007ffff620a030
27    PyEval_EvalCodeEx    /usr/lib/libpython2.6.so.1.0    0    0x00007ffff620bd60
28    PyEval_EvalCode    /usr/lib/libpython2.6.so.1.0    0    0x00007ffff620be32
29    PyRun_StringFlags    /usr/lib/libpython2.6.so.1.0    0    0x00007ffff6229d1c
30    Base::InterpreterSingleton::runString    Interpreter.cpp    117    0x00007ffff66dc653
31    Gui::Command::doCommand    Command.cpp    413    0x00007ffff72635b3
32    DrawSketchHandlerLineSet::releaseButton    CommandCreateGeo.cpp    563    0x00007fffd1d12316
33    SketcherGui::ViewProviderSketch::mouseButtonPressed    ViewProviderSketch.cpp    581    0x00007fffd1d3cfa8
34    Gui::ViewProvider::eventCallback    ViewProvider.cpp    195    0x00007ffff74835ce
35    SoEventCallback::handleEvent(SoHandleEventAction*)    /usr/lib/libCoin.so.60    0    0x00007ffff4eb3e0b
36    SoNode::handleEventS(SoAction*, SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4eccda7
37    SoAction::traverse(SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4c944f7
38    SoChildList::traverse(SoAction*, int, int)    /usr/lib/libCoin.so.60    0    0x00007ffff4de8ded
39    SoGroup::doAction(SoAction*)    /usr/lib/libCoin.so.60    0    0x00007ffff4ebffbb
40    SoSeparator::doAction(SoAction*)    /usr/lib/libCoin.so.60    0    0x00007ffff4ee393f
41    Gui::SoFCUnifiedSelection::handleEvent    SoFCUnifiedSelection.cpp    322    0x00007ffff73db639
42    SoNode::handleEventS(SoAction*, SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4eccda7
43    SoAction::traverse(SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4c944f7
44    SoChildList::traverse(SoAction*, int, int)    /usr/lib/libCoin.so.60    0    0x00007ffff4de8ded
45    SoGroup::doAction(SoAction*)    /usr/lib/libCoin.so.60    0    0x00007ffff4ebffbb
46    SoSeparator::doAction(SoAction*)    /usr/lib/libCoin.so.60    0    0x00007ffff4ee393f
47    SoNode::handleEventS(SoAction*, SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4eccda7
48    SoAction::traverse(SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4c944f7
49    SoChildList::traverse(SoAction*, int, int)    /usr/lib/libCoin.so.60    0    0x00007ffff4de8ded
50    SoGroup::doAction(SoAction*)    /usr/lib/libCoin.so.60    0    0x00007ffff4ebffbb
51    SoSeparator::doAction(SoAction*)    /usr/lib/libCoin.so.60    0    0x00007ffff4ee393f
52    SoNode::handleEventS(SoAction*, SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4eccda7
53    SoAction::traverse(SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4c944f7
54    SoHandleEventAction::beginTraversal(SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4c9f91a
55    SoAction::apply(SoNode*)    /usr/lib/libCoin.so.60    0    0x00007ffff4c94b72
56    SoEventManager::actuallyProcessEvent(SoEvent const*)    /usr/lib/libCoin.so.60    0    0x00007ffff4e742d9
57    SoQtRenderArea::processSoEvent(SoEvent const*)    /usr/lib/libSoQt4.so.20    0    0x00007ffff47b5efe
58    SoQtViewer::processSoEvent(SoEvent const*)    /usr/lib/libSoQt4.so.20    0    0x00007ffff47ee1bb
59    Gui::View3DInventorViewer::processSoEventBase    View3DInventorViewer.cpp    1111    0x00007ffff7463b89
60    Gui::NavigationStyle::processSoEvent    NavigationStyle.cpp    1086    0x00007ffff74497f3
61    Gui::CADNavigationStyle::processSoEvent    CADNavigationStyle.cpp    445    0x00007ffff744df44
62    Gui::NavigationStyle::processEvent    NavigationStyle.cpp    1069    0x00007ffff7449746
63    Gui::View3DInventorViewer::processSoEvent    View3DInventorViewer.cpp    1106    0x00007ffff7463b5f
64    SoQtRenderArea::processEvent(QEvent*)    /usr/lib/libSoQt4.so.20    0    0x00007ffff47b9329
65    Gui::View3DInventorViewer::processEvent    View3DInventorViewer.cpp    1045    0x00007ffff746366d
66    SoQtGLWidgetP::eventFilter(QObject*, QEvent*)    /usr/lib/libSoQt4.so.20    0    0x00007ffff47b2a8f
67    QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)    /usr/lib/libQtCore.so.4    0    0x00007ffff12cf487
68    QApplicationPrivate::notify_helper(QObject*, QEvent*)    /usr/lib/libQtGui.so.4    0    0x00007ffff238c1fc
69    QApplication::notify(QObject*, QEvent*)    /usr/lib/libQtGui.so.4    0    0x00007ffff2392ecb
70    Gui::GUIApplication::notify    Application.cpp    1444    0x00007ffff7204c05
71    QCoreApplication::notifyInternal(QObject*, QEvent*)    /usr/lib/libQtCore.so.4    0    0x00007ffff12d006c
72    QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)    /usr/lib/libQtGui.so.4    0    0x00007ffff23920ae
73    ??    /usr/lib/libQtGui.so.4    0    0x00007ffff2411f65
74    QApplication::x11ProcessEvent(_XEvent*)    /usr/lib/libQtGui.so.4    0    0x00007ffff24108ac
75    ??    /usr/lib/libQtGui.so.4    0    0x00007ffff243c882
76    g_main_context_dispatch    /lib/libglib-2.0.so.0    0    0x00007fffeb58e8c2
77    ??    /lib/libglib-2.0.so.0    0    0x00007fffeb592748
78    g_main_context_iteration    /lib/libglib-2.0.so.0    0    0x00007fffeb5928fc
79    QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)    /usr/lib/libQtCore.so.4    0    0x00007ffff12f9513
80    ??    /usr/lib/libQtGui.so.4    0    0x00007ffff243c46e
81    QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)    /usr/lib/libQtCore.so.4    0    0x00007ffff12ce992
82    QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)    /usr/lib/libQtCore.so.4    0    0x00007ffff12ced6c
83    QCoreApplication::exec()    /usr/lib/libQtCore.so.4    0    0x00007ffff12d2aab
84    Gui::Application::runApplication    Application.cpp    1660    0x00007ffff7200fc7
85    main    MainGui.cpp    349    0x00000000004078e4

 

I think level 34 looks interesting.  I need to put the break point on Gui::ViewProvider::eventCallback ViewProvider.cpp and single step my way to see whats going on.  But that’s enough for tonight.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *