|
From: | Daniel J Sebald |
Subject: | Re: gplot.txt |
Date: | Sat, 05 Mar 2016 19:11:26 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111108 Fedora/3.1.16-1.fc14 Thunderbird/3.1.16 |
On 03/05/2016 07:02 PM, Ben Abbott wrote:
On Mar 5, 2016, at 7:06 PM, Ben Abbott<address@hidden> wrote:On Mar 5, 2016, at 1:54 AM, Daniel J Sebald<address@hidden> wrote: On 03/04/2016 09:40 AM, Daniel J Sebald wrote:On 03/04/2016 07:44 AM, Ben Abbott wrote:[snip]Dan's patch didn't resolve the speye segfault. I'll move on to the changesets isolated by bisecting.OK, thanks Ben. I will follow up with more. Go ahead with bisecting, and I'll approach just from looking at the code. DanBen, Here's another small patch for you to apply. It's meant to just hunt around for where the problem might be--prints out the value of the rep pointer before and after the object creation and copy. Here is what I see when running this: octave:1> speye(10); Before object creation and copy: rep = 24093664 After object creation and copy: rep = 24099376 Before object creation and copy: rep = 24096528 After object creation and copy: rep = 24099808 I'm curious how this action works with your compiler. Dan <octave-mac_speye_fail-djs_2016mar04.diff>Sorry for the delay. Below is what I get …speye(10)Before object creation and copy: rep = 140417476007088 panic: Segmentation fault: 11 -- stopping myself... attempting to save variables to 'octave-workspace'... save to 'octave-workspace' complete Segmentation fault: 11 BenJust in case the seg-fault’s I see while building the docs is related ... GEN doc/interpreter/splinefit3.eps Before object creation and copy: rep = 140389001213056 After object creation and copy: rep = 140389001213056 Before object creation and copy: rep = 140389005748384 After object creation and copy: rep = 140389005748384 Before object creation and copy: rep = 140389005748384 After object creation and copy: rep = 140389005748384 Before object creation and copy: rep = 140389005770816 After object creation and copy: rep = 140389005770816 Before object creation and copy: rep = 140389007043568 After object creation and copy: rep = 140389007043568 Before object creation and copy: rep = 140389007051872 After object creation and copy: rep = 140389007051872 Before object creation and copy: rep = 140389007043568 After object creation and copy: rep = 140389007043568 Before object creation and copy: rep = 140389007051872 After object creation and copy: rep = 140389007051872 panic: Segmentation fault: 11 -- stopping myself... attempting to save variables to 'octave-workspace'... save to 'octave-workspace' complete octave exited with signal 11 Ben
I would conclude that the problem above isn't because of the as_array() function in this case. I say that because all the index code above has an "After" after the "Before". Also notice that the addresses are the same before and after in all cases. For the speye(10) example, I found that the address Before and After change. In other words, for all the cases above, this test fails:
if (rep->idx_class () != class_vector) *this = idx_vector (as_array (), extent (0)); and the idx_vector() function is not called.So your second example here is a different issue, but it may be the same kind of issue. Rik will know how extensive this type of OCTAVE_NORETURN discrepancy between base class and inheriting classes is.
Dan
[Prev in Thread] | Current Thread | [Next in Thread] |