Derek Parker
aa4f08e18f
check tgkill error
2014-11-21 17:01:14 -06:00
Derek Parker
fe24276b15
Use correct tgid for kill in timeoutWait
2014-11-21 15:44:08 -06:00
Derek Parker
6fd1fbabad
Cleanup trapWait, include TODO for timeoutWait fix
2014-11-20 17:15:42 -06:00
Michael Gehring
6d32a94cd7
Set stderr on launched processes
2014-11-14 13:52:21 -06:00
Derek Parker
29d0cd0bde
Cleanup ignored waitstatus
2014-11-13 19:08:20 -06:00
Michael Gehring
425117a3d6
Stop target process immediately after execve.
2014-11-13 18:52:13 -06:00
Derek Parker
03b5e30bfb
Seek reader for finding goroutine info
2014-11-13 08:36:20 -06:00
Michael Gehring
2f91684e7a
Don't panic in threads
if there is no info for pc
2014-11-12 17:28:28 -06:00
Derek Parker
dcf9f04d45
Improve variable evaluation scope
...
Properly scope variable evaluation to the function the traced process is
currently stopped in.
2014-11-10 21:26:13 -06:00
Derek Parker
505ae44828
cleanup
2014-11-10 07:04:05 -06:00
Derek Parker
cb5785324d
Acknowledge runtime.breakpoint
2014-11-09 18:25:42 -06:00
Derek Parker
7d69c16512
Add command to print all goroutines info
2014-11-09 12:56:21 -06:00
Derek Parker
d2ebf4dc83
Add some documentation
2014-11-08 07:30:22 -06:00
Derek Parker
665ff49181
Add command to print every thread status
2014-11-07 23:55:25 -06:00
Derek Parker
6b2ee09163
Improve overall thread coordination
2014-11-07 23:45:54 -06:00
Derek Parker
4483b17bd6
Synchronize threads better when breakpoint is hit
2014-11-02 12:49:21 -06:00
Derek Parker
f26839d078
Refactor: cleanup path through addThread
2014-10-27 18:10:45 -05:00
Derek Parker
256b386136
Cleanup AttachThread
2014-10-27 17:55:55 -05:00
Derek Parker
f280ba2a3b
minor syntax cleanup
2014-10-27 17:50:47 -05:00
Derek Parker
54788de89b
remove silly function
2014-10-27 17:50:19 -05:00
Derek Parker
27a042eab5
cleanup wait function
2014-10-27 17:47:43 -05:00
Derek Parker
d30a104177
cleanup extra newline
2014-10-27 07:33:19 -05:00
Derek Parker
f1ceba0909
Support 32 bit floats
2014-10-26 12:44:26 -05:00
Derek Parker
6af32b40e6
cleanup go vet errors
2014-10-25 12:44:35 -05:00
Derek Parker
0a12910bc2
Remove unused function
2014-10-25 12:44:35 -05:00
Derek Parker
053c5535ba
Small code cleanup
2014-10-25 12:26:02 -05:00
Derek Parker
7a2362310e
Update documentation
2014-10-25 11:13:02 -05:00
Derek Parker
a3700a4407
Improve support for int variable evaluation
2014-10-25 11:07:12 -05: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
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
1760022895
Refactor Next implementation
2014-10-14 09:52:16 -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
be7f34ee0c
Cleanup: Return err directly if cannot set breakpoint
2014-10-13 08:56:42 -05:00
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