[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #41190] dbstatus clears breakpoints set in @cl
From: |
Rik |
Subject: |
[Octave-bug-tracker] [bug #41190] dbstatus clears breakpoints set in @class files |
Date: |
Mon, 10 Feb 2014 16:36:19 +0000 |
User-agent: |
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 |
Follow-up Comment #2, bug #41190 (project octave):
Ugh. I see a bit of what is happening, but no easy way to stop it. When the
list of breakpoints is generated (get_breakpoint_list), Octave goes through
each breakpoint found to get details such as file name. For ordinary
functions this works fine. For class objects, find_method is used which seems
to invoke the whole class constructor interface. Eventually the symbol table
is updated in line 433 of symtab.cc with
class_constructors[name] = retval;
The assignment operator '=' triggers a look at the currently stored
octave_value in class_constructors[name]. There is only one reference count
to this octave_value and when it is decremented it triggers the destructor for
the octave_value. In this case the octave_value is holding a user function
reference and part of the destructor for removing a function from Octave is to
clear any breakpoints.
So, that's why breakpoints are getting cleared. It does reveal a bit more as
well, this is only a problem with the constructor. Setting a breakpoint in a
different function of a class works.
dbstop @ftp/mget
ans = 36
dbstatus
breakpoint in mget at line 36.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?41190>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/