Commit Graph

92 Commits

Author SHA1 Message Date
Derek Parker
5da86a3e31 cleanup 2014-10-09 17:15:10 -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
9b415c7546 Remove test binaries 2014-08-27 17:56:23 -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
950556ea49 Fix typo in error message 2014-08-05 19:02:44 -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
cba9ac206d Enable next to clean up after itself 2014-07-21 18:20:16 -05:00
Derek Parker
6b64296bca Improve .debug_line parser performance 2014-07-14 21:41:15 -05:00
Derek Parker
c546ea2ef7 Reduce running time / allocations of frame parser 2014-07-14 13:30:04 -05:00
Derek Parker
07fec48272 Further improve next command
* Fixes incorrect loop `next`ing behaviour
* Includes fix for determining return address
2014-07-11 14:52:55 -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
Derek Parker
ea335b3d7e Refactor frame API 2014-06-29 11:52:30 -05:00
Derek Parker
38bfdaf47c Implement initial support for stack unwinding.
Implement basic api for figuring out, given a current PC value, where
the function will return. Currently the API provides only a way to
determine the offset from SP (the Canonical Frame Address). It is left
up to the caller to grab the actual address from the traced program.
2014-06-25 14:14:29 -05:00
Derek Parker
1b74a18814 InitialLocation / AddressRange should be uintptr 2014-06-10 18:20:21 -05:00
Derek Parker
f76ac8c32b Fix: Use file path passed into test func 2014-06-10 13:25:08 -05:00
Derek Parker
74bbd00dbd Rename files 2014-06-09 21:11:55 -05:00
Derek Parker
0a3b410650 FIX: Parse data alignment factor as SLEB128 2014-06-09 17:24:48 -05:00
Derek Parker
012c6e8c70 Implement decoding of SLEB128 numbers 2014-06-09 17:23:15 -05:00
Derek Parker
8fb5e164b3 Update test progs for go13 2014-06-09 13:28:06 -05:00
Derek Parker
d36297687a Underscore fixtures dir to ignore during test run 2014-06-09 10:55:18 -05:00
Derek Parker
d08710180d Improve docs for decodeULEB128 2014-06-06 19:25:07 -05:00
Derek Parker
4970c86ebd Rename reader -> buf 2014-06-06 19:24:32 -05:00
Derek Parker
07fe148df5 Don't export ULEB128 decode func 2014-06-06 19:23:09 -05:00
Derek Parker
a2d0e29f33 Store Entry and Frame in context 2014-06-06 19:04:15 -05:00
Derek Parker
1f4580cd21 Fix: burn bytes for CIE pointer
Also change function sig to be shorter
2014-06-06 16:05:26 -05:00
Derek Parker
28694f54a1 Fix type 2014-06-06 15:28:47 -05:00
Derek Parker
b43c1ec524 Initial Dwarf .debug_frame parser
Still needs to handle the following:
* Correctly adapt to augmentation strings
* Correctly parse instructions
2014-06-06 15:22:50 -05:00