Hi all, IOhannes,
I am porting my systems from fedora 11 to ubuntu 12.04, but I am having some trouble with pix_mano. In Ubuntu 12.04 I get:
Segmentation fault (core dumped)
and Pd crashes
I have tested it in two different computers and get the same results. The exact same code and versions of Pd ( I have tried both pd-0.42-5 and pd-0.43-4) And I am using GEM: ver: 0.93.git 6d584fa
The only thing that is different between ubuntu and fedora is the camera driver, but this is stable for other applications, and as far as I can understand a segmentation fault refers to a problem in memory allocation?
IOhannes, I was trying to debug this and found that you had introduced some pimpl idiom stuff I don't know very well such as:
if(m_pimpl->p_enteringPoint->size < i) {
delete m_pimpl->p_enteringPoint;
m_pimpl->p_enteringPoint=NULL;
}
if(!m_pimpl->p_enteringPoint)
m_pimpl->p_enteringPoint=new PIMPL::enteringPoint(i);
Do you think these might have anything to do with these segmentation fault crashes?
best,
J
Try running Pd with gdb and you'll get a lot more information on the crash. Search puredata.info for "gdb" for howto.
the "backtrace" command in gdb is a good place to start, it'll show you in which function the crash is occuring.
.hc
On Oct 13, 2012, at 5:27 PM, Jaime Oliver wrote:
Hi all, IOhannes,
I am porting my systems from fedora 11 to ubuntu 12.04, but I am having some trouble with pix_mano. In Ubuntu 12.04 I get:
Segmentation fault (core dumped)
and Pd crashes
I have tested it in two different computers and get the same results. The exact same code and versions of Pd ( I have tried both pd-0.42-5 and pd-0.43-4) And I am using GEM: ver: 0.93.git 6d584fa
The only thing that is different between ubuntu and fedora is the camera driver, but this is stable for other applications, and as far as I can understand a segmentation fault refers to a problem in memory allocation?
IOhannes, I was trying to debug this and found that you had introduced some pimpl idiom stuff I don't know very well such as:
if(m_pimpl->p_enteringPoint->size < i) { delete m_pimpl->p_enteringPoint; m_pimpl->p_enteringPoint=NULL; } if(!m_pimpl->p_enteringPoint) m_pimpl->p_enteringPoint=new PIMPL::enteringPoint(i);
Do you think these might have anything to do with these segmentation fault crashes?
best,
J
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hey Hans,
Thanks, but I am hitting a wall:
(gdb) add-symbol-file /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux The address where /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux has been loaded is missing
perhaps I should be adding Gem.pd_linux instead of my external?
J
On Sat, Oct 13, 2012 at 7:39 PM, Hans-Christoph Steiner hans@at.or.at wrote:
Try running Pd with gdb and you'll get a lot more information on the crash. Search puredata.info for "gdb" for howto.
the "backtrace" command in gdb is a good place to start, it'll show you in which function the crash is occuring.
.hc
On Oct 13, 2012, at 5:27 PM, Jaime Oliver wrote:
Hi all, IOhannes,
I am porting my systems from fedora 11 to ubuntu 12.04, but I am having some trouble with pix_mano. In Ubuntu 12.04 I get:
Segmentation fault (core dumped)
and Pd crashes
I have tested it in two different computers and get the same results. The exact same code and versions of Pd ( I have tried both pd-0.42-5 and pd-0.43-4) And I am using GEM: ver: 0.93.git 6d584fa
The only thing that is different between ubuntu and fedora is the camera driver, but this is stable for other applications, and as far as I can understand a segmentation fault refers to a problem in memory allocation?
IOhannes, I was trying to debug this and found that you had introduced some pimpl idiom stuff I don't know very well such as:
if(m_pimpl->p_enteringPoint->size < i) { delete m_pimpl->p_enteringPoint; m_pimpl->p_enteringPoint=NULL; } if(!m_pimpl->p_enteringPoint) m_pimpl->p_enteringPoint=new PIMPL::enteringPoint(i);
Do you think these might have anything to do with these segmentation fault crashes?
best,
J
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
/also:
(gdb) attach pd. Illegal process-id: pd..
?
J
On Sat, Oct 13, 2012 at 8:36 PM, Jaime Oliver jaime.oliver2@gmail.com wrote:
Hey Hans,
Thanks, but I am hitting a wall:
(gdb) add-symbol-file /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux The address where /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux has been loaded is missing
perhaps I should be adding Gem.pd_linux instead of my external?
J
On Sat, Oct 13, 2012 at 7:39 PM, Hans-Christoph Steiner hans@at.or.at wrote:
Try running Pd with gdb and you'll get a lot more information on the crash. Search puredata.info for "gdb" for howto.
the "backtrace" command in gdb is a good place to start, it'll show you in which function the crash is occuring.
.hc
On Oct 13, 2012, at 5:27 PM, Jaime Oliver wrote:
Hi all, IOhannes,
I am porting my systems from fedora 11 to ubuntu 12.04, but I am having some trouble with pix_mano. In Ubuntu 12.04 I get:
Segmentation fault (core dumped)
and Pd crashes
I have tested it in two different computers and get the same results. The exact same code and versions of Pd ( I have tried both pd-0.42-5 and pd-0.43-4) And I am using GEM: ver: 0.93.git 6d584fa
The only thing that is different between ubuntu and fedora is the camera driver, but this is stable for other applications, and as far as I can understand a segmentation fault refers to a problem in memory allocation?
IOhannes, I was trying to debug this and found that you had introduced some pimpl idiom stuff I don't know very well such as:
if(m_pimpl->p_enteringPoint->size < i) { delete m_pimpl->p_enteringPoint; m_pimpl->p_enteringPoint=NULL; } if(!m_pimpl->p_enteringPoint) m_pimpl->p_enteringPoint=new PIMPL::enteringPoint(i);
Do you think these might have anything to do with these segmentation fault crashes?
best,
J
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Jaime E Oliver LR
jo2357@columbia.edu www.jaimeoliver.pe 858 750 0924 (cel)
This should attach automatically:
$ gdb pd
Otherwise try looking up the PID number of the 'pd' process, and then doing 'attach PID#' at the gdb prompt.
Try loading Gem.pd_linux first, then pix_mano.pd_linux
.hc
On Oct 13, 2012, at 8:36 PM, Jaime Oliver wrote:
Hey Hans,
Thanks, but I am hitting a wall:
(gdb) add-symbol-file /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux The address where /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux has been loaded is missing
perhaps I should be adding Gem.pd_linux instead of my external?
J
On Sat, Oct 13, 2012 at 7:39 PM, Hans-Christoph Steiner hans@at.or.at wrote:
Try running Pd with gdb and you'll get a lot more information on the crash. Search puredata.info for "gdb" for howto.
the "backtrace" command in gdb is a good place to start, it'll show you in which function the crash is occuring.
.hc
On Oct 13, 2012, at 5:27 PM, Jaime Oliver wrote:
Hi all, IOhannes,
I am porting my systems from fedora 11 to ubuntu 12.04, but I am having some trouble with pix_mano. In Ubuntu 12.04 I get:
Segmentation fault (core dumped)
and Pd crashes
I have tested it in two different computers and get the same results. The exact same code and versions of Pd ( I have tried both pd-0.42-5 and pd-0.43-4) And I am using GEM: ver: 0.93.git 6d584fa
The only thing that is different between ubuntu and fedora is the camera driver, but this is stable for other applications, and as far as I can understand a segmentation fault refers to a problem in memory allocation?
IOhannes, I was trying to debug this and found that you had introduced some pimpl idiom stuff I don't know very well such as:
if(m_pimpl->p_enteringPoint->size < i) { delete m_pimpl->p_enteringPoint; m_pimpl->p_enteringPoint=NULL; } if(!m_pimpl->p_enteringPoint) m_pimpl->p_enteringPoint=new PIMPL::enteringPoint(i);
Do you think these might have anything to do with these segmentation fault crashes?
best,
J
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Jaime E Oliver LR
jo2357@columbia.edu www.jaimeoliver.pe 858 750 0924 (cel)
OK, so I got it running and the crash is always in line 727:
Program received signal SIGSEGV, Segmentation fault. 0x00007fffe18f8418 in pix_mano::processGrayImage (this=<optimized out>, image=...) at pix_mano.cpp:727 727 if (base[chGray + xcoord] == 80) { // if we find a point (gdb) watchdog: signaling pd... watchdog: signaling pd...
Now, I know where that is, but I just don't understand how there can be a problem with this. Or what the problem is for that matter.
I mean, I am merely doing a test that the external does all the time. Furthermore, it doesn't crash in earlier linux versions...
Any suggestions?
J
On Sat, Oct 13, 2012 at 10:39 PM, Hans-Christoph Steiner hans@at.or.at wrote:
This should attach automatically:
$ gdb pd
Otherwise try looking up the PID number of the 'pd' process, and then doing 'attach PID#' at the gdb prompt.
Try loading Gem.pd_linux first, then pix_mano.pd_linux
.hc
On Oct 13, 2012, at 8:36 PM, Jaime Oliver wrote:
Hey Hans,
Thanks, but I am hitting a wall:
(gdb) add-symbol-file /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux The address where /home/joliver/Gem/extra/pix_mano/pix_mano.pd_linux has been loaded is missing
perhaps I should be adding Gem.pd_linux instead of my external?
J
On Sat, Oct 13, 2012 at 7:39 PM, Hans-Christoph Steiner hans@at.or.at wrote:
Try running Pd with gdb and you'll get a lot more information on the crash. Search puredata.info for "gdb" for howto.
the "backtrace" command in gdb is a good place to start, it'll show you in which function the crash is occuring.
.hc
On Oct 13, 2012, at 5:27 PM, Jaime Oliver wrote:
Hi all, IOhannes,
I am porting my systems from fedora 11 to ubuntu 12.04, but I am having some trouble with pix_mano. In Ubuntu 12.04 I get:
Segmentation fault (core dumped)
and Pd crashes
I have tested it in two different computers and get the same results. The exact same code and versions of Pd ( I have tried both pd-0.42-5 and pd-0.43-4) And I am using GEM: ver: 0.93.git 6d584fa
The only thing that is different between ubuntu and fedora is the camera driver, but this is stable for other applications, and as far as I can understand a segmentation fault refers to a problem in memory allocation?
IOhannes, I was trying to debug this and found that you had introduced some pimpl idiom stuff I don't know very well such as:
if(m_pimpl->p_enteringPoint->size < i) { delete m_pimpl->p_enteringPoint; m_pimpl->p_enteringPoint=NULL; } if(!m_pimpl->p_enteringPoint) m_pimpl->p_enteringPoint=new PIMPL::enteringPoint(i);
Do you think these might have anything to do with these segmentation fault crashes?
best,
J
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Jaime E Oliver LR
jo2357@columbia.edu www.jaimeoliver.pe 858 750 0924 (cel)
On 14/10/12 21:23, Jaime Oliver wrote:
OK, so I got it running and the crash is always in line 727:
Program received signal SIGSEGV, Segmentation fault. 0x00007fffe18f8418 in pix_mano::processGrayImage (this=<optimized out>, image=...) at pix_mano.cpp:727 727 if (base[chGray + xcoord] == 80) { // if we find a point (gdb) watchdog: signaling pd... watchdog: signaling pd...
Now, I know where that is, but I just don't understand how there can be a problem with this. Or what the problem is for that matter.
base could be null or other invalid memory address or (chGray + xcoord) could be outside valid memory when offset by base.
I mean, I am merely doing a test that the external does all the time.
You're doing several things in that line: computing "(chGray + xcoord) * sizeof(array type of base)" then reading a number of bytes from that memory location, then comparing it to 80, and then testing the result. The "reading from that memory location" part is what generally causes SIGSEGV.
Furthermore, it doesn't crash in earlier linux versions...
Assuming identical Gem version (otherwise it could be internal Gem changes breaking previously sensible code):
Probably coincidence, unless xcoord is coming from some kernel driver, or the memory layout is different in such a way that a previously masked bug now causes problems.
Any suggestions?
first, run with -nrt to avoid watchdog spam.
Then in gdb, "info locals", "print base", "print xcoord", "help", etc