Derek Parker
5331dad93d
Rename project
2014-10-15 09:28:22 -05:00
Derek Parker
6b80a726af
Remove DWARF .debug_line parser / util funcs
2014-10-15 08:31:01 -05:00
Derek Parker
fa0092ac74
Rename helper dir
2014-10-14 09:53:10 -05:00
Derek Parker
58c1f54578
Improve Next implementation
...
Fix bug involving detecting whether or not we have stepped into another
function when we plan on return from the function we are currently in.
2014-10-13 19:04:38 -05:00
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
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