153 Commits

Author SHA1 Message Date
64e01bfed1 Begin thread code isolation 2014-12-08 17:40:59 -06:00
d41bbbf5c3 Further isolate Linux specific code 2014-12-08 17:15:52 -06:00
2ecf625c5b Remove unused struct member 2014-12-08 12:15:08 -06:00
53ae81291b Isolate proctl_*.go linux specific code 2014-12-05 16:17:10 -06:00
1b819915fd Remove unused function 2014-12-05 12:39:54 -06:00
f8bb5acc9b Return more meaningful errors 2014-12-04 15:26:53 -06:00
d14183a2a2 Fix: do not always use pid thread for clearing bp
Since fixing scheduler handling bugs, a new bug was exposed where Step
was calling Clear off of the DebuggedProcess struct. This is incorrect,
 and should be handled by the thread itself and not delegated.
2014-12-04 15:04:48 -06:00
a039e5a93d Add basic support for evaluating struct members 2014-12-02 23:30:39 -06:00
46760aaa1c Rename fn for clarity 2014-12-02 16:44:51 -06:00
2046bc8192 Check for err on Dwarf fn seek 2014-12-02 16:42:50 -06:00
67e2455caf Fix format string 2014-12-02 12:42:17 -06:00
5ece8d3b69 Use allm info to attach to existing threads
This remove reliance on the procfs for figuring out what threads are
already active when we attach to a running process. The allm linked list
will be present to matter what OS we're on, whereas procfs will not be
present everywhere.

This is the first in a series of steps to support more platforms.
2014-12-02 10:15:51 -06:00
74defb1028 Remove unused struct 2014-11-28 20:16:46 -06:00
afa3a9cc6c Remove timeoutWait due to improved scheduler handling 2014-11-26 20:45:29 -06:00
16392ce609 Improve handling of Go runtime scheduler 2014-11-26 20:35:53 -06:00
13a3112b6b Improve Go 1.4 support / cleanup goroutine printing 2014-11-25 20:37:43 -06:00
04097af74d Avoid carrying closure around with goroutine 2014-11-25 09:22:34 -06:00
36d3ecd6e1 Update documentation 2014-11-24 18:19:40 -06:00
3b2b17938b Improve support for goroutine context switching
Remove any assumption that a wait syscall on a thread id after a
continue will return. Any time we continue a thread, wait for activity
from any thread, because the scheduler may well have switched contexts
on us due to syscall entrace, channel op, etc...

There are several more things to be done here including:

* Potential tracking of goroutine id as we jump around to thread
  contexts.
* Potential of selectively choosing threads to operate on based on the
  internal M data structures, ensuring that our M has an active G.

This commit partially fixes #23 and #24, however there are still some
random hangs that happen and need to be ironed out.
2014-11-24 17:57:52 -06:00
c4eadc386b Cleanup stopTheWorld arity 2014-11-23 10:44:28 -06:00
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
582833a125 minor cleanup 2014-11-21 17:10:13 -06:00
32fdfd8a2d lower timeout wait 2014-11-21 17:02:43 -06:00
aa4f08e18f check tgkill error 2014-11-21 17:01:14 -06:00
fe24276b15 Use correct tgid for kill in timeoutWait 2014-11-21 15:44:08 -06:00
6fd1fbabad Cleanup trapWait, include TODO for timeoutWait fix 2014-11-20 17:15:42 -06:00
6d32a94cd7 Set stderr on launched processes 2014-11-14 13:52:21 -06:00
29d0cd0bde Cleanup ignored waitstatus 2014-11-13 19:08:20 -06:00
425117a3d6 Stop target process immediately after execve. 2014-11-13 18:52:13 -06:00
03b5e30bfb Seek reader for finding goroutine info 2014-11-13 08:36:20 -06:00
2f91684e7a Don't panic in threads if there is no info for pc 2014-11-12 17:28:28 -06:00
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
505ae44828 cleanup 2014-11-10 07:04:05 -06:00
cb5785324d Acknowledge runtime.breakpoint 2014-11-09 18:25:42 -06:00
7d69c16512 Add command to print all goroutines info 2014-11-09 12:56:21 -06:00
d2ebf4dc83 Add some documentation 2014-11-08 07:30:22 -06:00
665ff49181 Add command to print every thread status 2014-11-07 23:55:25 -06:00
6b2ee09163 Improve overall thread coordination 2014-11-07 23:45:54 -06:00
4483b17bd6 Synchronize threads better when breakpoint is hit 2014-11-02 12:49:21 -06:00
f26839d078 Refactor: cleanup path through addThread 2014-10-27 18:10:45 -05:00
256b386136 Cleanup AttachThread 2014-10-27 17:55:55 -05:00
f280ba2a3b minor syntax cleanup 2014-10-27 17:50:47 -05:00
54788de89b remove silly function 2014-10-27 17:50:19 -05:00
27a042eab5 cleanup wait function 2014-10-27 17:47:43 -05:00
d30a104177 cleanup extra newline 2014-10-27 07:33:19 -05:00
f1ceba0909 Support 32 bit floats 2014-10-26 12:44:26 -05:00
6af32b40e6 cleanup go vet errors 2014-10-25 12:44:35 -05:00
0a12910bc2 Remove unused function 2014-10-25 12:44:35 -05:00
053c5535ba Small code cleanup 2014-10-25 12:26:02 -05:00
7a2362310e Update documentation 2014-10-25 11:13:02 -05:00