PikeDebugger
Work on permitting pike code to be debugged interactively is underway, and currently exists as a rough proof of concept in branch bill/debugger-concept. The debugger requires pike to be compiled with --with-debug and can be enabled using --debugger option to pike, with enables a hilfe server on port 3333Current features of the POC:
// set a breakpoint at line 22 in the current program program p = this_program; object bp = Debug.Debugger.Breakpoint(p, "/path/to/file.pike", 22); bp->enable(); $ telnet localhost 3333 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Welcome to the Pike Debugger. Breakpoint on /Users/hww3/bpt.h:2 > backtrace; (1) Result: ({ /* 4 elements */ backtrace_frame(/Users/hww3/pike2/build/darwin-16.7.0-x86_64/master.pike:4148, _main(), Args: 1), backtrace_frame(-:1, `()(), Args: 1), backtrace_frame(/Users/hww3/bpt.pike:14, doit(), No args), backtrace_frame(/Users/hww3/bpt.h:2, whee(), Args: 1) }) > backtrace[-1]->locals(); (4) Result: ({ /* 3 elements */ "rad", 0, 0 }) > backtrace[-1]->set_local(1, "bar"); (5) Result: 0 > backtrace[-1]->locals(); (6) Result: ({ /* 3 elements */ "rad", "bar", 0 }) > step Stepping. Breakpoint on /Users/hww3/bpt.pike:22 > backtrace; (1) Result: ({ /* 4 elements */ backtrace_frame(/Users/hww3/pike2/build/darwin-16.7.0-x86_64/master.pike:4148, _main(), Args: 1), backtrace_frame(-:1, `()(), Args: 1), backtrace_frame(/Users/hww3/bpt.pike:14, doit(), No args), backtrace_frame(/Users/hww3/bpt.pike:22, whee(), Args: 1) }) > backtrace[-1]->locals(); (2) Result: ({ /* 3 elements */ "rad", "bar", "wq" }) > go Powered by PikeWiki2 |
|||
gotpike.org | Copyright © 2004 - 2009 | Pike is a trademark of Department of Computer and Information Science, Linköping University |