64 Commits

Author SHA1 Message Date
c0ba4681c9 Use boolean zero value instead of setting false 2015-07-28 07:52:29 -05:00
510133ae5a Return after error parsing version string 2015-07-28 07:51:09 -05:00
0933a681cf proc.(*Thread).GetG: reading TLS memory directly for g address instead of modifying the executable code 2015-07-28 07:33:51 +02:00
d0f3459efb bugfix, Issue #163: offset of g struct in TLS picked based on the value of runtime.buildVersion and presence of compile units created by GNU AS, instead of being fixed to -16 2015-07-28 07:33:51 +02:00
df2bf3cb63 Fix comment typos 2015-07-16 13:07:34 -05:00
1727df4b1b Fix: Properly attach to running process on OSX 2015-07-15 20:37:43 -05:00
b32afd92ad Add test for kevent patch 2015-07-15 19:57:54 -05:00
0ab44d10ea Handle thread blocked on kevent 2015-07-14 09:51:52 -05:00
c96d0a5ab2 Add pid flag to trace subcommand 2015-07-13 19:20:37 -05:00
3cee10d8bc Implement 'trace' subcommand
Allows a user to execute `dlv trace [regexp]` and Delve will execute the
program and output information on functions matching [regexp].
2015-07-12 15:20:12 -05:00
40284111d4 Kill process outright if manually forked 2015-07-11 01:43:47 -05:00
e6448556fa Cleanup whitespace 2015-07-10 20:16:06 -05:00
98da14b078 Add comments to proc.Detach 2015-07-10 15:57:32 -05:00
8107955039 Remove accidental GOMAXPROCS call in proc 2015-07-10 15:52:49 -05:00
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
c8e4fcc285 Upper case comment 2015-07-10 15:43:42 -05:00
b31575b54c Refactor: condense code for looking at current fn 2015-07-10 15:42:09 -05:00
38e2cfc615 Remove duplicate call to Halt 2015-07-10 15:15:44 -05:00
99cf3abc18 Inline superfluous function definition 2015-07-10 14:48:45 -05:00
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
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
386101466a Update comment in next 2015-07-09 15:21:10 -05:00
a99a37f397 Initial refactor of source package
Major source cleanup, still not finished. Removes gross control flow.
2015-07-09 13:06:30 -05:00
4aad37b69c Reorder imports 2015-07-08 15:02:43 -05:00
c496e9bccf Don't rely on CurrentBreakpoint, lookup before continue 2015-07-08 13:06:06 -05:00
8c44181d56 Prefer actual thread location in goroutine struct 2015-07-07 21:21:47 -05:00
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
776e2a593f Null terminate argv array in Go land not C land 2015-07-07 14:57:36 -05:00
05517c62c1 Properly terminate C string array for execve on OSX 2015-07-07 08:42:34 -05:00
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
3a96d8eed7 trace command 2015-06-29 21:16:55 +02:00
c267eda9ba Update docs for ClearBreakpoint 2015-06-29 08:06:48 -05:00
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
70aff5612c Check thread.CurrentBreakpoint instead of PC lookup 2015-06-27 23:22:02 -05:00
8d4a73f7dd Refactor: Reorganize guard clauses 2015-06-27 23:22:01 -05:00
29ed169848 Return error when invoking Delve with invalid path
Fixes #154
2015-06-26 23:05:15 -05:00
24c024d1e6 Kill whitespace 2015-06-26 22:10:09 -05:00
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
71fae8f5c6 Only clear and reset breakpoint for current thread 2015-06-26 22:03:50 -05:00
9d1711d376 dbp.Running determined by any thread running 2015-06-26 09:58:26 -05:00
db278d0453 Improve TestHalt reliability on Linux 2015-06-26 07:46:46 -05:00
72b81c0c6b Ensure process is stopped before detaching in tests 2015-06-24 18:33:38 -05:00
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
014e20d8a6 proc: don't deref nil pointer if getG fails 2015-06-21 21:11:48 -05:00
b5483aa9cb Set GOMAXPROCS in proc_test
Makes for more deterministic test runs.
2015-06-21 21:11:48 -05:00
48bb398c4b Properly report process exits 2015-06-21 21:11:47 -05:00
687dc4172d Introduce JSON-RPC service 2015-06-21 21:11:30 -05:00
38f97b4023 Update documentation on Process.Breakpoints 2015-06-20 18:07:32 -05:00
6e538119d2 Refactor: Rename breakpoint methods
s/Break/SetBreakpoint/
s/Clear/ClearBreakpoint/
s/BreakByLocation/SetBreakpointByLocation/
2015-06-20 18:01:06 -05:00
102d4c89ae s/DebuggedProcess/Process/ 2015-06-20 17:54:52 -05:00