Coder Social home page Coder Social logo

devel-hdb's People

Contributors

brummett avatar ctriv avatar dsteinbrunner avatar elindsey avatar iynehz avatar manwar avatar mishin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

devel-hdb's Issues

wrap long lines in the code window

I suppose this border in working around poorly written code but it would be nice if the code window could avoid have a long horizontal scrollbar.

At the very least the window should always start with the view showing column 0 whereas currently it sometimes shows an empty box because it is basically showing column -1 (but for the longest line).

parent should wait after fork()

In the overridden fork(), the parent process should wait until it gets notified about the child. Then return control back to the debugged program

Can't inspect values with circular references

You can't add a variable to the watch window that contains a circular reference. You start getting warnings about deep recursion into Devel::hdb::App::EncodePerlData::encode_perl_data

It also has the same problem when trying to draw the stack frames and one function was passed a self-referential argument.

keybindings

It would be cool if it supported keybindings (that were similar to the command line keybindings, e.g. '.' takes could jump to the current line. I believe there are JavaScript libraries for doing keybindings like how Gmail, JIRA, etc. have.

Follow mode stop can report the wrong line

When execution changes from the trace file, the line reported as the expected next line is the absolute line number. This means if the function starts at a different line number in follow mode, the reported line is meaningless.

It should be corrected to show the line from the offset of the function.

execution did not terminate after the debugger terminated

execution did not terminate after the debugger terminated

! perl -d:hdb=a foo.t
Using libraries at /gscuser/nnutter/genome/master/lib/perl/
Debugger pid 1091 listening on http://0.0.0.0:8080/
ok 1 - created TestResult class
not ok 2 - correctly failed to create an instance of $class_name with (something => undef)
#   Failed test 'correctly failed to create an instance of $class_name with (something => undef)'
#   at foo.t line 21.
1..2
# Looks like you failed 1 test of 2.
Removing remaining resource lock: '/gsc/var/lock/genome/TestResult/0ec3b32302a87e4d2ed444ba9661e572' at /gscuser/nnutter/genome/master/lib/perl/Genome/Sys/Lock.pm line 316.
Debugged program pid 1091 terminated with exit code 1

^CINT/TERM cleanup activated in Genome::Utility::Filesystem
 at /gscuser/nnutter/genome/master/lib/perl/Genome/Sys/Lock.pm line 310.
        Genome::Sys::Lock::INT_cleanup('INT') called at /usr/lib/perl/5.10/IO/Socket.pm line 236
        eval {...} called at /usr/lib/perl/5.10/IO/Socket.pm line 236
        IO::Socket::accept('IO::Socket::INET=GLOB(0x3ebf670)') called at /usr/share/perl5/Devel/hdb/Server.pm line 30
        Devel::hdb::Server::accept_loop('Devel::hdb::Server=HASH(0x3ebf118)', 'CODE(0x401e2b8)') called at /usr/share/perl5/HTTP/Server/PSGI.pm line 59
        HTTP::Server::PSGI::run('Devel::hdb::Server=HASH(0x3ebf118)', 'CODE(0x401e2b8)') called at /usr/share/perl5/Devel/hdb/App.pm line 673
        Devel::hdb::App::run('Devel::hdb::App=HASH(0x401e120)') called at /usr/share/perl5/Devel/hdb/DB.pm line 186
        DB::DB called at /usr/share/perl5/Devel/hdb/DB.pm line 422
        DB::fake::at_exit() called at /usr/share/perl5/Devel/hdb/DB.pm line 416
        DB::END() called at foo.t line 0
        eval {...} called at foo.t line 0
END failed--call queue aborted.

hover over variable should have a pause

Instead of immediately trying to inspect the variable, require the pointer to hover in for a second or so. That way when the user sweeps the mouse across the window, it won't generate a bunch of useless requests

Hover-over-variable for hash elements

Hovering over the key with "$hash{key}" highlights the key, but not the whole expression. But it does show the right value.

Hovering over "@hash{'key1','key2'}" only highlights the key list, and also does not show the right answer.

Hover over list or hash element doesn't work

Hovering over a variable expression that's part of a hash or array doesn't show the expected thing because DB->get_var_at_level only works when given the exact name of a variable. Things like $list[$i] and @hash{'key1',$key2} aren't valid variable names.

Devel::hdb::App::do_getvar() needs to be smarter about parsing the incoming variable name, separating the base variable name (like @list) from the subset (list element(s) and key(s)).

It should work even when the element/key is a variable in scope when the element is selected.

Current location bar is unwieldy when params are complex

If the current function includes some complex data (say, a hashref), we don't want to actually render it in the location bar fully expanded.

Try just rendering the PerlValue's header here, with a hover action to show the whole thing, like the way the regular perl variable hover works.

trace-diff

Have the debugger run once in trace mode, where it records all the lines that execute. Then run again where it stops the first time the execution trace is different than the first time.

Allow running to sub return

It's like step out... It gives control after the return, but before the next statement after the return, and allows the user to change the return value if they want

Stack tabs aren't scrollable

When the stack list/tabs becomes taller than the window, the scroll bar appears on the right side of the whole current-process-tab (includes the stack list and code pane). The scrollbar should be attached to the list of tabs instead.

Switch to a splice()-like model for stack GUI changes

Instead of the current API of Debugger.stackFrameChanged() where the StackManager tells the GUI when stack frame i changes, it should use a model like a list splice(). Then the Debugger GUI can re-use existing code panes when stepping into a function just by adding a new pane on the top

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.