Commit Graph

142 Commits

Author SHA1 Message Date
Derek Parker
248766300d Remove silly function 2014-10-13 08:27:25 -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
09e352bdf7 Refactor: Move Cover method to FDE 2014-10-11 00:52:05 -05:00
Derek Parker
dfacf0770d Fix wrong location bug for Next impl 2014-10-10 21:00:07 -05:00
Derek Parker
8457f5c7df Cleanup test 2014-10-10 13:52:13 -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
10a1447ae1 Implement support for pointers to structs 2014-10-07 16:22:26 -05:00
Derek Parker
f0e0d0b8fd Implement support for struct evaluation 2014-10-07 14:32:22 -05:00
Derek Parker
6562b2e531 Do not os.Exit(0) in test 2014-10-07 14:03:44 -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
2231c0e7f3 Add reminder for "Next" optimization 2014-10-07 10:33:13 -05:00
Derek Parker
6363ce106a Add comments for PC reset code 2014-10-07 07:58:21 -05:00
Derek Parker
5c301dd9b1 Improve 'in current fn' check for Next impl 2014-10-07 07:57:11 -05:00
Derek Parker
a69c2dc994 Cleanup test 2014-10-05 10:53:13 -05:00
Derek Parker
2ce7352aa4 Simplify temp breakpoint cleanup 2014-10-04 18:13:20 -05:00
Derek Parker
f8a65c41c5 Improve next impl -- needs refactoring 2014-10-04 00:52:40 -05:00
Derek Parker
a712a86074 cleanup formatting 2014-09-30 08:49:30 -05:00
Derek Parker
fad8104160 Reorganize code a bit 2014-09-25 17:20:09 -05:00
Derek Parker
b88d73c6f6 Remove dwarf info text file 2014-09-22 18:34:52 -05:00
Derek Parker
342af24117 Remove superous binary 2014-09-22 18:34:16 -05:00
Derek Parker
ea087ba1b1 Modify fixture prog 2014-09-19 19:58:16 -05:00
Derek Parker
e83e39b158 Fix potential suite hang 2014-09-19 16:01:39 -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
aefbd8f35a Use consistent fatal test messages 2014-09-06 18:56:25 -05:00
Derek Parker
42c98577d8 Use test assertion helper 2014-09-06 18:53:22 -05:00
Derek Parker
26b9878513 Remove superfluous break in Next implementation 2014-09-05 16:16:55 -05:00
Derek Parker
50951ba257 Do not export nextPotentialLocations 2014-09-05 14:52:45 -05:00
Derek Parker
6aec8333eb Move things around because aesthetics 2014-09-05 14:38:43 -05:00
Derek Parker
f5df7ea14d Fix: error should not use nil val 2014-09-05 14:20:12 -05:00
Derek Parker
39569a14ac Refactor Next implementation 2014-09-05 14:19:03 -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
a847f4fd9d Don't rely on process.Wait(), instead use syscall 2014-08-27 17:47:04 -05:00
Derek Parker
fe79437656 Organize types / methods a bit 2014-08-15 15:43:14 -05:00
Derek Parker
0e11797f8b Reduce nesting 2014-08-14 18:00:48 -05:00
Derek Parker
54e15f9d06 Don't assume availability of .gosymtab / .gopclntab 2014-08-07 17:57:58 -05:00
Derek Parker
0af47b64ce Use external red/black tree package 2014-08-07 11:03:42 -05:00
Derek Parker
d977810626 Parallelize initial parsing operations 2014-08-06 11:14:23 -05:00
Derek Parker
d676be1810 Use t.StructName for switch param 2014-08-06 09:50:15 -05:00
Derek Parker
c22b6a8aea Remove leftover printf 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
6dd5098a0c Add support for evaluating int slice 2014-08-04 15:41:09 -05:00
Derek Parker
21025b2fc6 Implement basic array evaling 2014-08-04 15:21:35 -05:00
Derek Parker
f8abe30aa7 Read string type from memory 2014-08-04 13:53:15 -05:00
Derek Parker
a22d563252 Refactor: split read* into seperate functions 2014-08-04 13:25:00 -05:00
Derek Parker
2b83a1f3ca Implement reading of float64 value 2014-08-04 13:20:20 -05:00
Derek Parker
3993cfe148 Implement basic int value expressions 2014-08-01 16:34:49 -05:00
Derek Parker
cba9ac206d Enable next to clean up after itself 2014-07-21 18:20:16 -05:00
Derek Parker
f7e36b3c46 Improve documentation of LoadInformation() 2014-07-16 20:16:49 -05:00
Derek Parker
dcb707001b Add line between functions 2014-07-16 20:13:01 -05:00
Derek Parker
f30046921b Remove superfluous documentation 2014-07-16 20:12:10 -05:00
Derek Parker
e8ffa31bd7 Small refactor, only arithmetic once 2014-07-11 15:32:26 -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
7e8d7c565a Fix typo 2014-06-26 22:43:30 -05:00
Derek Parker
1f171beae0 Factor out test helpers 2014-06-25 14:06:04 -05:00
Derek Parker
948f83a140 Ensure we lock OS thread in test 2014-06-09 14:56:10 -05:00
Derek Parker
d36297687a Underscore fixtures dir to ignore during test run 2014-06-09 10:55:18 -05:00
Derek Parker
6abfc19147 Refactor: Introduce fn to launch proc and run test 2014-05-30 10:12:18 -05:00
Derek Parker
f6792c37f5 Refactor: Use helper function for obtaining regs 2014-05-30 10:12:18 -05:00
Derek Parker
45b399e596 Restore breakpoint in defer function 2014-05-29 11:18:28 -05:00
Derek Parker
a47d851756 Prefer SetPC 2014-05-29 10:27:03 -05:00
Derek Parker
f570a84539 Inline PtracePokeData 2014-05-29 10:26:42 -05:00
Derek Parker
4fe0978e4b Fix typo 2014-05-29 10:23:37 -05:00
Derek Parker
fb904cc1aa Fix bug in stepping after hitting BP 2014-05-29 09:36:48 -05:00
Derek Parker
bf0d67a9e0 Ensure test program is killed after spec 2014-05-28 18:14:26 -05:00
Derek Parker
7dc93a4083 Fix: string formatting bug in Clear() 2014-05-28 17:47:29 -05:00
Derek Parker
f66a2023a8 Use single byte to store INT3 2014-05-28 15:58:12 -05:00
Derek Parker
c3bac38ba1 Pass addr to Break() and Clear() 2014-05-27 18:15:18 -05:00
Derek Parker
3d325da7b0 Prefer delete() builtin 2014-05-27 17:45:51 -05:00
Derek Parker
edbce2dd6b Implement breakpoint clear backend functionality 2014-05-27 13:33:49 -05:00
Derek Parker
7a01a19143 Update documentation 2014-05-27 13:20:10 -05:00
Derek Parker
23dacd8cc7 Fix: reset bp.Addr not PC() 2014-05-27 13:10:35 -05:00
Derek Parker
73ddaa2653 Modify Step() to not print, delegate to command 2014-05-27 11:32:25 -05:00
Derek Parker
0866de0c86 Ensure we can step/continue past breakpoints 2014-05-27 10:43:47 -05:00
Derek Parker
fdda6c5706 Prefer PCToLine 2014-05-27 07:47:22 -05:00
Derek Parker
251abd2c21 Handle attempt to set break on nonexistent func 2014-05-24 11:36:18 -05:00
Derek Parker
03fab9c26e Ensure breakpoint is set only once 2014-05-24 11:22:06 -05:00
Derek Parker
798fdd9de0 Implement backend breakpoint functionality 2014-05-23 19:44:54 -05:00
Derek Parker
f8ab6234c9 Add test around attaching to process 2014-05-23 14:20:04 -05:00
Derek Parker
4df7b998ee Parse go symbol table and print on step 2014-05-23 14:19:38 -05:00
Derek Parker
0d134e8733 Don't export handleResult() 2014-05-21 10:23:45 -05:00
Derek Parker
a67f21fee4 Add documentation 2014-05-21 10:23:14 -05:00
Derek Parker
84f80fd149 Rename Exec() to HandleResult() 2014-05-20 16:39:32 -05:00
Derek Parker
9b27095579 Take error directly in Exec() 2014-05-20 16:38:49 -05:00
Derek Parker
170ae88312 Refactor: Remove duplicate code 2014-05-20 15:15:52 -05:00
Derek Parker
8d67a063f7 Update process state on step 2014-05-20 13:23:36 -05:00
Derek Parker
25783f23d6 Implement Continue() for linux amd64 2014-05-20 13:23:36 -05:00
Derek Parker
ea0ff20e16 Implement linux amd64 step 2014-05-20 13:23:35 -05:00