bugGNU Octave - Bugs: bug #38953, Feature request: list command for...

 
 

bug #38953: Feature request: list command for debugger

Submitter:  None
Submitted:  Thu 09 May 2013 04:51:40 PM UTC
   
 
Category:  Interpreter Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Feature Request
Status:  Fixed Assigned to:  None
Originator Name:  Charles Fox Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * 3.2.0
Operating System:  * GNU/Linux Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Wed 26 Jun 2013 01:35:33 PM UTC, comment #4: 

Thanks very much for this Rik -- I've just upgraded to the latest svn and this dblist command is going to revolutionize my stepping though other people's code!

(Having just the next executable line there was good for debugging my own code, but I mostly use the debugger to help understand/reverse engineer large uncommented research code bases written by others, where it's good to see the whole algorithm and step though it to watch what it does.)

Charles

Charles Fox <charlesfox>
Tue 25 Jun 2013 03:07:19 AM UTC, comment #3: 

I added a dblist command in this changeset (http://hg.savannah.gnu.org/hgweb/octave/rev/035b5fe157ad).  Closing report.

Rik <rik5>
Group administrator
Wed 19 Jun 2013 12:40:08 AM UTC, comment #2: 

I would strongly suggest upgrading to the current stable version of Octave.  Version 3.2.0 is deprecated and very out of date.

The current debugger behavior is to print out the line number and code of the next executable line whenever the debug prompt is triggered.  Thus, you can see where you are and what will be executed by the next dbstep command without having to use dbwhere and dbtype.

If you are feeling more experimental the development version of Octave has a GUI with integrated debugging very similar to Matlab.

Rik <rik5>
Group administrator
Sat 11 May 2013 04:51:47 PM UTC, comment #1: 

Debug code is generally in libinterp/interpfcn/debug.cc.  There has been a lot of recent activity related to breakpoints:

http://hg.savannah.gnu.org/hgweb/octave/rev/645672f1c873
http://hg.savannah.gnu.org/hgweb/octave/rev/de91b1621260

Become familiar with the code and coordinate with John to make sure time is invested in a good direction.  In fact, you may want to open such a feature for discussion on the maintainers list.

Dan Sebald <sebald>
Thu 09 May 2013 04:51:40 PM UTC, original submission:  

I'm stepping through someone else's code to try to understand what it's doing.    In Matlab-like environments this is easy, the keys F9-F11 give step commands, and the current position and stack is displayed in the GUI.   Doing this in Octave is clunkier, I have do keep typing dbwhere to get the line number, reading it manually, and re-typing it into the list command to see the code.  (And even then it doesn't show the current line).

I would like to suggest a command line debugger feature similar to gdb where the user can type a single letter 'l' (for list) and have the interpreter show the 10 lines around the current line, with an arrow marking the current line.    (It could also allow "l 20" to specify how many lines to print).   This would only take a few minutes to implement but would speed up my code reading by a factor of 10s or probably 100s.

(A more heavyweight solution would be to have the debugger expose its own internals as an octave struct, like in the python pdb debugger.   Then the user could write her own functions like
   function mydblist()
      currentline = theDebugger.lineNo
      currentfunctionfile = theDebugger.currentFunctionFile
      %read and print lines from file
this would probably be a much bigger job to implement but would allow different users to write all kinds of useful debug macros and share them.)

I could maybe have a go at a patch for the lightweight version myself if one of the octave devs could give me a few pointers about where to look in the code?  (I wrote some similar mods for the python debugger, but it's code is probably a lot easier to read than octave's.)

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by charlesfox (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by sebald (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2013-06-25 rik5 StatusNone Fixed
        Open/ClosedOpen Closed
    2013-06-19 rik5 SummaryFeature request: improvements to command line debugger Feature request: list command for debugger

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code