Derek Parker
64e01bfed1
Begin thread code isolation
2014-12-08 17:40:59 -06:00
Derek Parker
afa3a9cc6c
Remove timeoutWait due to improved scheduler handling
2014-11-26 20:45:29 -06:00
Derek Parker
16392ce609
Improve handling of Go runtime scheduler
2014-11-26 20:35:53 -06:00
Derek Parker
8be3ffc774
Refactor: wrap syscall.Wait4
...
Wrap syscall.Wait4 and cleanup a few coordination issues.
There are still some issues here where background threads are left
sleeping. This could potentially cause weird issues. There are a few
more things I have planned to cleanup thread coordination issues.
2014-11-22 18:57:26 -06:00
Derek Parker
6b2ee09163
Improve overall thread coordination
2014-11-07 23:45:54 -06:00
Derek Parker
08aec0d59c
Move variable related code to own file
2014-10-25 10:48:14 -05:00
Derek Parker
c625f09a17
Promote breakpoints back up to process
2014-10-25 09:17:05 -05:00
Derek Parker
4c95bf7302
(Mostly) working multithreaded tracing implementation
...
Areas that need improving:
* Code cleanup
* Promote breakpoints back out of thread context
* Fix potential bug in "Next" implementation, when thread contexts
switch
2014-10-25 08:59:22 -05:00
Derek Parker
099efeeb9d
Allow evaluation of function params
2014-10-17 14:14:55 -05:00
Derek Parker
5331dad93d
Rename project
2014-10-15 09:28:22 -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
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
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
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
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
a847f4fd9d
Don't rely on process.Wait()
, instead use syscall
2014-08-27 17:47:04 -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
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
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
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
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
edbce2dd6b
Implement breakpoint clear backend functionality
2014-05-27 13:33:49 -05:00
Derek Parker
0866de0c86
Ensure we can step/continue past breakpoints
2014-05-27 10:43:47 -05:00