Derek Parker
e6448556fa
Cleanup whitespace
2015-07-10 20:16:06 -05:00
Derek Parker
98da14b078
Add comments to proc.Detach
2015-07-10 15:57:32 -05:00
Derek Parker
8107955039
Remove accidental GOMAXPROCS call in proc
2015-07-10 15:52:49 -05:00
Derek Parker
1ce255ffa3
Remove any printing from core proc package
...
Also, reorganizes some code.
Initially, the `proc` package emitted a lot of output. Now, that should
not be the case. The `proc` package should never print, for any reason.
That should be handled by clients.
2015-07-10 15:48:51 -05:00
Derek Parker
c8e4fcc285
Upper case comment
2015-07-10 15:43:42 -05:00
Derek Parker
b31575b54c
Refactor: condense code for looking at current fn
2015-07-10 15:42:09 -05:00
Derek Parker
38e2cfc615
Remove duplicate call to Halt
2015-07-10 15:15:44 -05:00
Derek Parker
99cf3abc18
Inline superfluous function definition
2015-07-10 14:48:45 -05:00
Derek Parker
aa71d787aa
Always stop the world after trapWait in resume
...
We do not need to verify a current breakpoint, nor do a redundant check
on whether we have been asked to manually halt. Assume trapWait has done
its due diligence and stop the world once it returns.
2015-07-09 23:13:20 -05:00
Derek Parker
a00957fcf5
Reuse existing function for BP by ID lookup
...
Also, kill whitespace to make code appear more as a singular block for
readability.
2015-07-09 15:45:43 -05:00
Derek Parker
386101466a
Update comment in next
2015-07-09 15:21:10 -05:00
Derek Parker
a99a37f397
Initial refactor of source package
...
Major source cleanup, still not finished. Removes gross control flow.
2015-07-09 13:06:30 -05:00
Derek Parker
4aad37b69c
Reorder imports
2015-07-08 15:02:43 -05:00
Derek Parker
c496e9bccf
Don't rely on CurrentBreakpoint, lookup before continue
2015-07-08 13:06:06 -05:00
Derek Parker
8c44181d56
Prefer actual thread location in goroutine struct
2015-07-07 21:21:47 -05:00
Derek Parker
4d1dc5ad0e
Inject SIGTRAP for manual stop
...
Instead of fighting against the normal flow, just signal a SIGTRAP and
let the existing flow handle it, as long as we set the halt flag
correctly the system should halt.
2015-07-07 15:55:22 -05:00
Derek Parker
776e2a593f
Null terminate argv array in Go land not C land
2015-07-07 14:57:36 -05:00
Derek Parker
05517c62c1
Properly terminate C string array for execve on OSX
2015-07-07 08:42:34 -05:00
Derek Parker
6b99c5f519
Cleanup tracepoint commit
...
* Cleanup comments
* Cleanup naming in certain instances
* Modify stacktrace to return current location
2015-06-30 22:16:52 -05:00
aarzilli
3a96d8eed7
trace command
2015-06-29 21:16:55 +02:00
Derek Parker
c267eda9ba
Update docs for ClearBreakpoint
2015-06-29 08:06:48 -05:00
aarzilli
2fcbc4bdef
ClearBreakpoint should clear a hardware breakpoint from all threads
...
additionally fixes a bug when Detach is called on an exiting/exited thread: dbp.CurrentThread could point to a thread that has already been removed from dbp.Threads by trapWait which will lead to a nil pointer dereference caused proc.Process.clearBreakpoint getting nil from dbp.Threads[tid]
2015-06-29 11:35:53 +02:00
Derek Parker
70aff5612c
Check thread.CurrentBreakpoint instead of PC lookup
2015-06-27 23:22:02 -05:00
Derek Parker
8d4a73f7dd
Refactor: Reorganize guard clauses
2015-06-27 23:22:01 -05:00
Derek Parker
29ed169848
Return error when invoking Delve with invalid path
...
Fixes #154
2015-06-26 23:05:15 -05:00
Derek Parker
24c024d1e6
Kill whitespace
2015-06-26 22:10:09 -05:00
aarzilli
d919114d32
Fix: Linux - call wait4 on thread grp leader is broken
...
On a thread that's leader of its group,
that is ptraced and that was survived by its children.
2015-06-26 22:10:09 -05:00
aarzilli
71fae8f5c6
Only clear and reset breakpoint for current thread
2015-06-26 22:03:50 -05:00
Derek Parker
9d1711d376
dbp.Running determined by any thread running
2015-06-26 09:58:26 -05:00
Derek Parker
db278d0453
Improve TestHalt reliability on Linux
2015-06-26 07:46:46 -05:00
Derek Parker
72b81c0c6b
Ensure process is stopped before detaching in tests
2015-06-24 18:33:38 -05:00
Derek Parker
b35a743a3c
Ensure thread is stopped before setting breakpoint
...
For hardware breakpoints we have to set them on every thread. It could
be the case that another thread is running. Stop it first, set the
breakpoint, then continue it.
2015-06-24 18:33:38 -05:00
Michael Gehring
014e20d8a6
proc: don't deref nil pointer if getG fails
2015-06-21 21:11:48 -05:00
Derek Parker
b5483aa9cb
Set GOMAXPROCS in proc_test
...
Makes for more deterministic test runs.
2015-06-21 21:11:48 -05:00
Derek Parker
48bb398c4b
Properly report process exits
2015-06-21 21:11:47 -05:00
Derek Parker
687dc4172d
Introduce JSON-RPC service
2015-06-21 21:11:30 -05:00
Derek Parker
38f97b4023
Update documentation on Process.Breakpoints
2015-06-20 18:07:32 -05:00
Derek Parker
6e538119d2
Refactor: Rename breakpoint methods
...
s/Break/SetBreakpoint/
s/Clear/ClearBreakpoint/
s/BreakByLocation/SetBreakpointByLocation/
2015-06-20 18:01:06 -05:00
Derek Parker
102d4c89ae
s/DebuggedProcess/Process/
2015-06-20 17:54:52 -05:00
aarzilli
07473f04c5
Implement stack command
...
Finishes #63 #64
2015-06-20 15:29:33 -05:00
Giulio Iotti
256c83b17b
Implement regs command to print registers values, fixes #62
2015-06-19 14:27:01 -05:00
Derek Parker
e3aade85ab
Update Launch docs for Darwin
2015-06-19 08:15:54 -05:00
Derek Parker
509c4839ae
Update OSProcessDetails docs for Darwin
2015-06-19 08:14:56 -05:00
Derek Parker
b018c6bc31
Update thread.Continue documentation
2015-06-19 08:08:25 -05:00
Derek Parker
1201b3201d
Remove unused thread methods
2015-06-19 08:05:23 -05:00
Derek Parker
b7d4815d15
Update documentation
2015-06-17 22:01:31 -05:00
Derek Parker
c720919b04
Update docs around thread.SetNextBreakpoints
2015-06-17 21:52:58 -05:00
Derek Parker
37235bba7f
Store hardware/software breakpoints in same struct
2015-06-17 18:14:56 -05:00
Derek Parker
bb9fbe1056
Refactor: Use arch specific address sizes
2015-06-13 14:04:09 -05:00
Derek Parker
e4fc5e32c2
Refactor: Use thread-locked goroutine for ptrace ops
...
Previously either the terminal client or the debugger service would
either lock main goroutine to a thread or provide a locked goroutine to
run _all_ DebuggedProcess functions in. This is unnecessary because only
ptrace functions need to be run from the same thread that originated the
PT_ATTACH request.
Here we use a specific thread-locked goroutine to service any ptrace
request. That goroutine is also responsible for the initial spawning /
attaching of the process, since it must be responsible for the PT_ATTACH
request.
2015-06-13 12:57:42 -05:00
Derek Parker
a59c67b783
Update documentation for Thread struct
2015-06-12 14:53:20 -05:00
Derek Parker
e5233e7262
Rename: s/ThreadContext/Thread/
2015-06-12 14:51:23 -05:00
Derek Parker
bfca6114d4
Rename package proctl -> proc
2015-06-12 14:49:23 -05:00