Hi Phil I tested on a third Linux, with libwxgtk3.0-dev from package (the latest ubuntu package)
uname -a Linux glace 3.13.0-92-generic #139-Ubuntu SMP Tue Jun 28 20:42:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty then git clone http://git.code.sf.net/p/plplot/plplot plplot-plplot sudo apt-get install libwxgtk3.0-dev cd plplot-plplot/build/ cmake .. -DBUILD_TEST=ON -DENABLE_f95:BOOL=OFF make cd /home/pvicente/plplot-plplot/build/examples/c++ pvicente@glace:~/plplot-plplot/build/examples/c++$ ./wxPLplotDemo Segmentation fault (core dumped) ----- Original Message ----- From: "Pedro Vicente" <pedro.vice...@space-research.org> To: "Phil Rosenberg" <p.d.rosenb...@gmail.com>; <plplot-devel@lists.sourceforge.net> Sent: Saturday, December 10, 2016 4:18 AM Subject: Re: [Plplot-devel] wxPLplotDemo.cpp errors > Hi Phil > >>>I do have access to a CentOS machine at work, although I think I have >>>only got access to wxWidgets 2.8 on that system. > > What I usually do when I want to quick test on many unices , I install > Virtual Box > > https://www.virtualbox.org/ > > For example on my Windows PC I have a CentOS and Ubuntu as virtual guests > (not the ones I did the PLplot test) > > -Pedro > > > > > ----- Original Message ----- > From: "Phil Rosenberg" <p.d.rosenb...@gmail.com> > To: "Pedro Vicente" <pedro.vice...@space-research.org>; > <plplot-devel@lists.sourceforge.net> > Sent: Saturday, December 10, 2016 3:57 AM > Subject: Re: [Plplot-devel] wxPLplotDemo.cpp errors > > >> Hi Pedro >> I have included the devel list on this email, so the thread will get >> documented on the mailing list. >> >> It is very strange that the OnCreate function is not being called. If >> you are calling Create then you should be generating a create event. >> Am I correct in saying that you are getting this segfault with the >> unchanged demo app? >> >> This location really is the best (and maybe only) place this >> initialisation should be done. It cannot be included in the >> constructor, because the generic nature of the template specification >> means the code in the constructor does not know which type of wxWindow >> we are inheriting from so cannot pass the correct parameters to the >> constructor. By the time OnPaint is called it is really too late, >> because we would like to already have the plot initialised and ready >> to draw and it would be a real pain for you in your code if you had to >> somehow wait for the first paint or resize event. >> >> I do have access to a CentOS machine at work, although I think I have >> only got access to wxWidgets 2.8 on that system. I will check. I may >> be able to build 3.1 from source. I presume you are using 3.1.0 as >> released in February, rather than the head of the master branch? >> >> On 10 December 2016 at 07:52, Pedro Vicente >> <pedro.vice...@space-research.org> wrote: >>> Hi Phil >>> >>> My idea for a fix is to move the stream initialization that is now on >>> >>> void wxPLplotwindow<WXWINDOW>::OnCreate( wxWindowCreateEvent &event >>> { >>> if ( !m_created ) >>> >>> either to the OnSize or onPaint events >>> >>> void wxPLplotwindow<WXWINDOW>::OnSize( wxSizeEvent& WXUNUSED( event ) ) >>> >>> and also in the plot call do this >>> >>> template< class WXWINDOW > >>> void Plot( wxPLplotwindow<WXWINDOW> *plotwindow ) >>> { >>> wxPLplotstream* pls = plotwindow->GetStream(); >>> >>> if (pls == NULL) >>> { >>> return; >>> } >>> >>> >>> Like this , in this sequence >>> >>> >>> wxPLplotwindow<wxFrame> *frame = new wxPLplotwindow<wxFrame>(); >>> frame->Create( NULL, wxID_ANY, wxT( "wxPLplotDemo" ) ); >>> frame->SetIcon( wxIcon( graph ) ); >>> frame->Show(); >>> Plot( frame ); >>> >>> >>> first we go to >>> Plot( frame ); >>> >>> but the stream is NULL because >>> :OnCreate >>> was not called, but the function returns, avoiding the seg fault >>> >>> then the window gets a paint or size event, and the stream >>> initialization >>> code is called >>> at this time I have a PLplot empty black window >>> >>> but because >>> Plot( frame ); >>> was only called at start, it is not called again, so there is no draw >>> >>> any ideas here ? >>> >>> of course making the Plot() call in another app function should work >>> >>> >>> If you could replicate this issue, that would be great. >>> I am using CentOS 6.8, PLplot.5.11.1 , wxWidgets 3.1.0 >>> >>> >>> >>> >>> >>> ----- Original Message ----- From: Pedro Vicente >>> To: plplot-devel@lists.sourceforge.net ; Phil Rosenberg >>> Sent: Saturday, December 10, 2016 12:59 AM >>> Subject: Re: [Plplot-devel] wxPLplotDemo.cpp errors >>> >>> >>> Hi Phil >>> >>> So, the issue seems to be the same that I have been reporting >>> >>> >>> In the wxPLplotDemo.cpp code you have these callling functions >>> >>> >>> wxPLplotwindow<wxFrame> *frame = new wxPlDemoFrame(); >>> frame->Create( NULL, wxID_ANY, wxT( "wxPLplotDemo" ) ); >>> >>> >>> that make 2 calls to the PLplot library, or the wxWidgets driver of it >>> all these calls are in the header file wxPLplotwindow.h >>> >>> first the constructor is called >>> >>> template<class WXWINDOW> >>> wxPLplotwindow<WXWINDOW>::wxPLplotwindow( bool useGraphicsContext, >>> wxSize >>> clientSize ) >>> : m_created( false ), m_initialSize( clientSize ) >>> >>> >>> then this call OnCreate() is called, like you mentioned >>> and the !m_created bool makes the initialization of the stream happen >>> >>> the problem is that this function id *NOT* called on my linux build (it >>> is >>> on the Windows build) >>> so therefore later >>> wxPLplotstream* pls = plotwindow->GetStream(); >>> >>> this is NULL, so therefore it seg faults on the plot calls >>> >>> //! This is called when the widow is created i.e. after WXWINDOW::Create >>> // has been called. We note that this has been called to avoid >>> attempting >>> // to redraw a plot on a window that hasn't been created yet. >>> template<class WXWINDOW> >>> void wxPLplotwindow<WXWINDOW>::OnCreate( wxWindowCreateEvent &event ) >>> { >>> if ( !m_created ) >>> >>> so, one quick try is to put the code of >>> >>> void wxPLplotwindow<WXWINDOW>::OnCreate >>> that is not called on the constructor maybe ? >>> >>> -Pedro >>> >>> ----- Original Message ----- From: Pedro Vicente >>> To: plplot-devel@lists.sourceforge.net ; Phil Rosenberg >>> Sent: Friday, December 09, 2016 11:57 PM >>> Subject: [Plplot-devel] wxPLplotDemo.cpp errors >>> >>> >>> Hi Phil >>> >>> So, resuming the last thread about wxWidgets, what I did was to build >>> and >>> run wxPLplotDemo.cpp from PLpplot 5.11.1 on CentOS 6.8 >>> >>> all builds fine, but when I do run , I get a seg fault >>> >>> [pedro.vicente@rhw9121 c++]$ cd >>> /data/home002/pvicente/plplot/build/examples/c++ >>> [pedro.vicente@rhw9121 c++]$ ./wxPLplotDemo >>> Segmentation fault >>> >>> I know that only this information is not much help to you to debug, but >>> in >>> the next couple of days I'll be debugging this and posting here any >>> solution. >>> >>> my cmake call was >>> >>> cmake .. -G "Unix Makefiles" -DBUILD_SHARED_LIBS:BOOL=OFF >>> -DENABLE_f95:BOOL=OFF -DENABLE_tcl:BOOL=OFF -DENABLE_tk:BOOL=OFF >>> -DCMAKE_INSTALL_PREFIX:PATH=/data/data127/pvicente/install/plplot-5.11.1d >>> -DPL_HAVE_PTHREAD:BOOL=OFF -DPLD_xwin:BOOL=OFF -DPLD_wxwidgets:BOOL=ON >>> -DwxWidgets_ROOT_DIR:PATH=/data/data127/pvicente/install/wxwidgets-3.1.0 >>> -DwxWidgets_LIB_DIR:PATH=/data/data127/pvicente/install/wxwidgets-3.1.0/lib >>> -DwxWidgets_CONFIGURATION=mswud -DENABLE_MIX_CXX=ON >>> -DwxWidgets_EXCLUDE_COMMON_LIBRARIES:BOOL=OFF >>> -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBUILD_TEST:BOOL=ON >& cmake.txt & >>> >>> >>> the output of >>> cmake >>> and >>> make >>> are attached >>> >>> -Pedro >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Developer Access Program for Intel Xeon Phi Processors >>> Access to Intel Xeon Phi processor-based developer platforms. >>> With one year of Intel Parallel Studio XE. >>> Training and support from Colfax. >>> Order your platform today.http://sdm.link/xeonphi >>> >>> >>> >>> _______________________________________________ >>> Plplot-devel mailing list >>> Plplot-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/plplot-devel >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Developer Access Program for Intel Xeon Phi Processors >>> Access to Intel Xeon Phi processor-based developer platforms. >>> With one year of Intel Parallel Studio XE. >>> Training and support from Colfax. >>> Order your platform today.http://sdm.link/xeonphi >>> >>> >>> >>> _______________________________________________ >>> Plplot-devel mailing list >>> Plplot-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/plplot-devel >> > > > ------------------------------------------------------------------------------ > Developer Access Program for Intel Xeon Phi Processors > Access to Intel Xeon Phi processor-based developer platforms. > With one year of Intel Parallel Studio XE. > Training and support from Colfax. > Order your platform today.http://sdm.link/xeonphi > _______________________________________________ > Plplot-devel mailing list > Plplot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/plplot-devel > ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/xeonphi _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel