Commit Graph

25 Commits

Author SHA1 Message Date
Derek Parker
dc8c9cc2a4 Optimize Next implementation
Once the program detects that we have stepped into another function,
we simply calculate the return address and then set a breakpoint and
continue to that location, avoiding numerous syscalls.
2014-10-13 08:24:59 -05:00
Derek Parker
c60f3aafde Refactor: Remove addrrange type 2014-10-11 01:05:27 -05:00
Derek Parker
09e352bdf7 Refactor: Move Cover method to FDE 2014-10-11 00:52:05 -05:00
Derek Parker
24b4c42ed9 cleanup failure message 2014-10-10 15:53:30 -05:00
Derek Parker
5d62780ec3 cleanup file names 2014-10-10 15:49:20 -05:00
Derek Parker
6a71009954 Fix Next impl
Needs some refactoring and some optimization, but fixes several bugs.
2014-10-09 14:19:10 -05:00
Derek Parker
c9cbaea291 Optimize Next implementation
Now that I'm using the step strategy, I put in an optimization where if
stepping into another function, simply find the return address, put a
breakpoint there, and then continue.
2014-10-07 13:57:03 -05:00
Derek Parker
f8a65c41c5 Improve next impl -- needs refactoring 2014-10-04 00:52:40 -05:00
Derek Parker
04c5f785f9 Remove unused test helper funcs 2014-09-19 16:44:20 -05:00
Derek Parker
eae4e99f78 Cleanup dwarf/frame tests 2014-09-18 23:00:41 -05:00
Derek Parker
8ee9525f47 Ensure temp breakpoints are cleared after next 2014-09-18 22:28:21 -05:00
Derek Parker
f1e5a70a4b Update for Go 1.3.1
I decided to vendor all debug/dwarf and debug/elf files so that the
project can be go get-table. All changes that I am waiting to land in Go
1.4 are now captured in /vendor/debug/*.
2014-09-13 12:28:46 -05:00
Derek Parker
6ae71169ed Update return address offset finder for laster go version 2014-09-12 15:59:29 -05:00
Derek Parker
9c298036b9 Rebuild binaries for every test 2014-09-12 15:19:36 -05:00
Derek Parker
232d3d7446 Prefer "new" for initialization 2014-09-01 10:39:04 -05:00
Derek Parker
631c8d902d Remove dead test 2014-08-07 11:04:07 -05:00
Derek Parker
0af47b64ce Use external red/black tree package 2014-08-07 11:03:42 -05:00
Derek Parker
2ed77e542c Refactor: Simplify frame parser 2014-08-05 19:02:44 -05:00
Derek Parker
c59f19cfb2 Refactor: Implement red/black tree for FDE lookup 2014-08-05 10:54:21 -05:00
Derek Parker
3993cfe148 Implement basic int value expressions 2014-08-01 16:34:49 -05:00
Derek Parker
319f6d2e20 Remove dwarf hack because Go fixed bug 2014-08-01 16:34:27 -05:00
Derek Parker
235619de3a Use stored return addr reg instead of constant 2014-07-29 17:34:53 -05:00
Derek Parker
c546ea2ef7 Reduce running time / allocations of frame parser 2014-07-14 13:30:04 -05:00
Derek Parker
3566fd5237 Improve next implementation
Improvements:
* `next`ing through a loop works correctly (when not already within a loop)
* `next`ing out of a function works correctly

Needs work:
* `next`ing in a loop can be improved when starting within a loop
2014-07-10 18:07:39 -05:00
Derek Parker
a788e03c7b Implement initial next implementation
This current implementation does not cover the following:

* Setting correct breakpoint when exiting loop
* Setting correct breakpoint when returning from function
    * All facilities are available for this, it just is not taken into
      account in the current `next` implementation.
2014-07-07 08:26:36 -05:00