[Paraview-developers] How to get active session from a plugin ?

houssen houssen at ipgp.fr
Thu Aug 6 17:48:26 EDT 2015


Here is a code snippet from myExporter.cpp : crash occurs at line 125 
(according to stack below)
105   vtkSMProxyManager * pProxyMgr = 
vtkSMProxyManager::GetProxyManager ();
106   if ( pProxyMgr )
107   {
108     vtkSMSession * pSession = pProxyMgr -> GetActiveSession ();
109     if ( pSession )
110     {
111       msg << "\n get session";
112       vtkSMSessionProxyManager * pProxyMgr = pSession -> 
GetSessionProxyManager ();
113       if ( pProxyMgr )
114       {
115         msg << "\n get proxy mgr";
116         vtkSmartPointer<vtkSMProxyIterator> spProxyIterator = 
vtkSmartPointer<vtkSMProxyIterator>::New();
117         spProxyIterator -> SetSessionProxyManager ( pProxyMgr );
118         spProxyIterator -> SetSession ( pSession );
119         spProxyIterator -> Begin ();
120         vtkSMProxy * pProxy = spProxyIterator -> GetProxy();
121         msg << "\nProxy : " << pProxy -> GetClassName ();
122         while ( pProxy )
123         {
124           vtkObjectBase * pObj = pProxy -> GetClientSideObject ();
125           msg << "\n  Proxy client obj : " << pObj -> GetClassName 
();
126
127           spProxyIterator -> Next ();
128           pProxy = spProxyIterator -> GetProxy();
129         }
130       }
131     }
133   }

I tried to use GetClientSideObject as I believe it could be a way to 
finally scan the pipeline browser. I would like to access each pipeline 
of the pipeline browser from an exporter.

Franck

Le 2015-08-06 23:34, houssen a écrit :
> I get this :
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff1e3db76 in vtkObjectBase::GetClassName (this=0x0) at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/VTK/Common/Core/vtkObjectBase.cxx:112
> 112	  return this->GetClassNameInternal();
> (gdb) l
> 107	  return this->GetClassNameInternal();
> 108	}
> 109	#endif
> 110	const char* vtkObjectBase::GetClassName() const
> 111	{
> 112	  return this->GetClassNameInternal();
> 113	}
> 114
> 115	int vtkObjectBase::IsTypeOf(const char *name)
> 116	{
> (gdb) bt
> #0  0x00007ffff1e3db76 in vtkObjectBase::GetClassName (this=0x0) at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/VTK/Common/Core/vtkObjectBase.cxx:112
> #1  0x00007fffc07f0fb4 in slvPrvExporter::WriteData (this=0x57be820)
> at /mnt/users/houssen/Documents/myExporter/myExporter.cpp:125
> #2  0x00007fffd1db7971 in vtkExporter::Write (this=0x57be820) at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/VTK/IO/Export/vtkExporter.cxx:65
> #3  0x00007ffff493bab2 in vtkSMRenderViewExporterProxy::Write
> (this=0x4e621f0)
>     at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/ParaViewCore/ServerManager/Default/vtkSMRenderViewExporterProxy.cxx:58
> #4  0x00007ffff7af57c5 in pqExportReaction::exportActiveView 
> (this=0xa9d0e0)
>     at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/Qt/ApplicationComponents/pqExportReaction.cxx:170
> #5  0x00007ffff7b56b1c in pqExportReaction::onTriggered 
> (this=0xa9d0e0)
>     at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/BUILD/Qt/ApplicationComponents/../../../Qt/ApplicationComponents/pqExportReaction.h:59
> #6  0x00007ffff7b5abc6 in pqReaction::qt_static_metacall
> (_o=0xa9d0e0, _c=QMetaObject::InvokeMetaMethod, _id=0,
> _a=0x7fffffffd120)
>     at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/BUILD/Qt/ApplicationComponents/moc_pqReaction.cxx:51
> #7  0x00007ffff581087a in QMetaObject::activate
> (sender=sender at entry=0xa945d0, m=m at entry=0x7ffff67d7de0
> <QAction::staticMetaObject>,
>     local_signal_index=local_signal_index at entry=1,
> argv=argv at entry=0x7fffffffd120) at kernel/qobject.cpp:3539
> #8  0x00007ffff5d27a62 in QAction::triggered
> (this=this at entry=0xa945d0, _t1=false) at
> .moc/release-shared/moc_qaction.cpp:276
> #9  0x00007ffff5d29433 in QAction::activate
> (this=this at entry=0xa945d0, event=event at entry=QAction::Trigger) at
> kernel/qaction.cpp:1257
> #10 0x00007ffff6157509 in QMenuPrivate::activateCausedStack
> (this=this at entry=0x86c610, causedStack=...,
> action=action at entry=0xa945d0,
>     action_e=action_e at entry=QAction::Trigger, self=self at entry=true)
> at widgets/qmenu.cpp:1038
> #11 0x00007ffff615ba39 in QMenuPrivate::activateAction
> (this=0x86c610, action=0xa945d0, action_e=QAction::Trigger,
> self=<optimized out>) at widgets/qmenu.cpp:1130
> #12 0x00007ffff5d7d51a in QWidget::event (this=this at entry=0x8fa300,
> event=event at entry=0x7fffffffd720) at kernel/qwidget.cpp:8376
> #13 0x00007ffff615f83b in QMenu::event (this=0x8fa300,
> e=0x7fffffffd720) at widgets/qmenu.cpp:2481
> #14 0x00007ffff5d2de2c in QApplicationPrivate::notify_helper
> (this=this at entry=0x6faae0, receiver=receiver at entry=0x8fa300,
> e=e at entry=0x7fffffffd720)
>     at kernel/qapplication.cpp:4567
> #15 0x00007ffff5d345dd in QApplication::notify (this=<optimized out>,
> receiver=0x8fa300, e=0x7fffffffd720) at kernel/qapplication.cpp:4110
> #16 0x00007ffff57fc4dd in QCoreApplication::notifyInternal
> (this=0x7fffffffdea0, receiver=receiver at entry=0x8fa300,
> event=event at entry=0x7fffffffd720)
>     at kernel/qcoreapplication.cpp:953
> #17 0x00007ffff5d33d93 in sendEvent (event=<optimized out>,
> receiver=<optimized out>) at
> ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
> #18 QApplicationPrivate::sendMouseEvent
> (receiver=receiver at entry=0x8fa300, event=event at entry=0x7fffffffd720,
> alienWidget=alienWidget at entry=0x0,
>     nativeWidget=nativeWidget at entry=0x8fa300,
> buttonDown=buttonDown at entry=0x7ffff6813318 <qt_button_down>,
> lastMouseReceiver=..., spontaneous=spontaneous at entry=true)
>     at kernel/qapplication.cpp:3178
> #19 0x00007ffff5da8d1c in QETWidget::translateMouseEvent
> (this=this at entry=0x8fa300, event=event at entry=0x7fffffffda70) at
> kernel/qapplication_x11.cpp:4568
> #20 0x00007ffff5da8289 in QApplication::x11ProcessEvent
> (this=0x7fffffffdea0, event=event at entry=0x7fffffffda70) at
> kernel/qapplication_x11.cpp:3627
> #21 0x00007ffff5dcfb32 in x11EventSourceDispatch (s=0x7014c0,
> callback=0x0, user_data=0x0) at
> kernel/qguieventdispatcher_glib.cpp:146
> #22 0x00007fffebe71e04 in g_main_context_dispatch () from
> /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #23 0x00007fffebe72048 in ?? () from 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #24 0x00007fffebe720ec in g_main_context_iteration () from
> /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #25 0x00007ffff58297a1 in QEventDispatcherGlib::processEvents
> (this=0x716010, flags=...) at kernel/qeventdispatcher_glib.cpp:434
> #26 0x00007ffff5dcfbe6 in QGuiEventDispatcherGlib::processEvents
> (this=<optimized out>, flags=...) at
> kernel/qguieventdispatcher_glib.cpp:204
> #27 0x00007ffff57fb0af in QEventLoop::processEvents
> (this=this at entry=0x7fffffffde40, flags=...) at
> kernel/qeventloop.cpp:149
> #28 0x00007ffff57fb3a5 in QEventLoop::exec
> (this=this at entry=0x7fffffffde40, flags=...) at
> kernel/qeventloop.cpp:204
> #29 0x00007ffff5800b79 in QCoreApplication::exec () at
> kernel/qcoreapplication.cpp:1225
> #30 0x00000000004094e6 in main (argc=1, argv=0x7fffffffdfd8) at
> 
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/BUILD/Applications/ParaView/paraview_main.cxx:115
>
>
> Le 2015-08-06 23:12, Sebastien Jourdain a écrit :
>> Something else must be wrong. No matter what you should be able to 
>> get
>> the ProxyManager.
>>
>> What does the debugger tell you about the cause of the crash?
>>
>> Seb
>>
>> On Thu, Aug 6, 2015 at 3:08 PM, houssen <houssen at ipgp.fr [11]> 
>> wrote:
>>
>>> Unfortunately, the code crashes when I call
>>> vtkSMProxyManager::GetProxyManager ().
>>> Is there another way ?
>>>
>>> Franck
>>>
>>> Le 2015-08-06 16:32, Sebastien Jourdain a écrit :
>>>
>>>> Try that:
>>>>
>>>> vtkSMProxyManager::GetProxyManager()->GetActiveSession()
>>>>
>>>> On Thu, Aug 6, 2015 at 2:50 AM, houssen <houssen at ipgp.fr [5]
>>>> [5]> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> In ParaView, from an exporter plugin, how can I get the active
>>>>> session ? (= session associated to the plugin in order later
>>>>> on to
>>>>> scan over vtkSMProxy)
>>>>>
>>>>> Following some code samples found in
>>>>> /ParaViewCore/ClientServerCore/Rendering, I tried to do :
>>>>> vtkProcessModule * pProcMgr =
>>>>> vtkProcessModule::GetProcessModule
>>>>> ();
>>>>> vtkSMSession * pSession = ( pProcMgr ) ?
>>>>> vtkSMSession::SafeDownCast ( pProcMgr -> GetActiveSession () )
>>>>> :
>>>>> NULL;
>>>>> I get pProcMgr != NULL but pSession = NULL
>>>>>
>>>>> Franck
>>>>>
>>>>> PS : I run Ubuntu-14.04 and use ParaView-4.3.1 (built from
>>>>> source).
>>>>>
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com [1] [1]
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html [2] [2]
>>>>>
>>>>> Search the list archives at:
>>>>> http://markmail.org/search/?q=Paraview-developers [3] [3]
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>>>> [4] [4]
>>>>
>>>> Links:
>>>> ------
>>>> [1] http://www.kitware.com [6]
>>>> [2] http://www.kitware.com/opensource/opensource.html [7]
>>>> [3] http://markmail.org/search/?q=Paraview-developers [8]
>>>> [4]
>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>> [9]
>>>> [5] mailto:houssen at ipgp.fr [10]
>>
>>
>>
>> Links:
>> ------
>> [1] http://www.kitware.com
>> [2] http://www.kitware.com/opensource/opensource.html
>> [3] http://markmail.org/search/?q=Paraview-developers
>> [4] http://public.kitware.com/mailman/listinfo/paraview-developers
>> [5] mailto:houssen at ipgp.fr
>> [6] http://www.kitware.com
>> [7] http://www.kitware.com/opensource/opensource.html
>> [8] http://markmail.org/search/?q=Paraview-developers
>> [9] http://public.kitware.com/mailman/listinfo/paraview-developers
>> [10] mailto:houssen at ipgp.fr
>> [11] mailto:houssen at ipgp.fr



More information about the Paraview-developers mailing list