- 02 8月, 2017 2 次提交
-
-
由 aarzilli 提交于
The compiler a variable 'v' that escapes to the heap with a '&v' entry. Auto dereference those local variables. Fixe #871
-
由 Alessandro Arzilli 提交于
Can't get the trace directory from the server after we disconnect from it.
-
- 29 7月, 2017 1 次提交
-
-
由 Derek Parker 提交于
Instead of panicing for sending on a closed channel, detect that the process has exited and return a proper error message. This patch also cleans up some spots where the Pid is omitted from the error. Fixes #920
-
- 27 7月, 2017 8 次提交
-
-
由 Alex Brainman 提交于
* proc/native: make sure debugged executable can be deleted on windows Delve opens debugged executable to read binary info it contains, but it never closes the file. Windows will not let you delete file that is opened. So close Process.bi in Process.postExit, and actually call Process.postExit from windows Process.Kill. Also Windows sends some debugging events (EXIT_PROCESS_DEBUG_EVENT event in particular) after Delve calls TerminateProcess. The events need to be consumed by debugger before debugged process will be released by Windows. So call Process.waitForDebugEvent after TerminateProcess in Process.Kill. Fixes #398 * cmd/dlv: make TestIssue398 pass on darwin * cmd/dlv: add comment for TestIssue398 * proc/native: wait for debuggee to exit before returning from windows Process.Kill * proc/native: close process handle before returning from windows killProcess * proc/native: remove not used Process.Process
-
由 aarzilli 提交于
Updates #893
-
由 aarzilli 提交于
-
由 aarzilli 提交于
When stepping through runtime sometimes the current goroutine will change. It is impossible to handle this in Next, Step and StepOut but StepInstruction can reset the current goroutine correctly.
-
由 aarzilli 提交于
Updates #893
-
由 aarzilli 提交于
proc.Process.StepInstruction should work even if there is no goroutine selected.
-
由 aarzilli 提交于
Next will add internal breakpoints with nil condition if it can't find the current goroutine (possibly because there isn't a current goroutine because the runtime hasn't been initialized yet). onNextGoroutine should skip breakpoints with nil condition, otherwise we'll end up with an internal debugger error trying to walk a nil expression. Updates #893
-
由 aarzilli 提交于
When there's a error reading the stack trace the call stack itself could be corrupted and we should return the partial stacktrace that we have. Fixes #868
-
- 21 7月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
Updates #794
-
- 19 7月, 2017 2 次提交
-
-
由 Florin Pățan 提交于
-
由 Alessandro Arzilli 提交于
Variable lookup is slow because it requires a full scan of debug_info to check for package variables, this doesn't matter much in interactive use but can slow down evaluation of breakpoint conditions significantly. Providing benchmark proof for this is hard since this effect doesn't show for small programs with small debug_info sections.
-
- 08 7月, 2017 2 次提交
-
-
由 Alessandro Arzilli 提交于
* proc: fix interaction of RequestManualStop and conditional breakpoints A conditional breakpoint that is hit but has the condition evaluate to false can block a RequestManualStop from working. If the conditional breakpoint is set on an instruction that is executed very frequently by multiple goroutines (or many conditional breakpoints are set) it could prevent all calls to RequestManualStop from working. This commit fixes the problem by changing proc.Continue to exit unconditionally after a RequestManualStop is called. * proc/gdbserial: fix ContinueOnce getting stuck on macOS Fixes #902
-
由 Alessandro Arzilli 提交于
Fixes #904
-
- 30 6月, 2017 3 次提交
-
-
由 Alessandro Arzilli 提交于
The concrete value of an interface is always stored as a pointer inside an interface variable. So far we have followed the memory layout and reported the type of the 'data' attribute of interfaces as a pointer, however this makes it impossible to distinguish interfaces with concrete value of type 'A' from interfaces of concrete value of type '*A'. With this changeset when we autodereference pointers when the concrete type of an interface is not a pointer.
-
由 Florin Pățan 提交于
* Fix various issues detected by megacheck I've ran honnef.co/go/tools/cmd/megacheck and fixed a few of the things that came up there. * Cleanup using Gogland
-
由 Alessandro Arzilli 提交于
Windows doesn't actually have ptrace. Fixes #778
-
- 27 6月, 2017 3 次提交
-
-
由 Alessandro Arzilli 提交于
-
由 Alex Brainman 提交于
-
由 Alessandro Arzilli 提交于
Fixes #885
-
- 22 6月, 2017 1 次提交
-
-
由 heschik 提交于
When a Go program is externally linked, the external linker is responsible for picking the TLS offset. It records its decision in the runtime.tlsg symbol. Read the offset from that rather than guessing -16. This implementation causes a regression: 1.4 and earlier will no longer work.
-
- 21 6月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
Other debuggers can be instructed to decorate the stacktrace with the value of SP. Our SP equivalent is the frame offset, since we can add it to the Stackframe structure without incurring into added costs we should, so that frontends can use it if they want.
-
- 13 6月, 2017 4 次提交
-
-
由 aarzilli 提交于
-
由 aarzilli 提交于
Implementing proc.Process.Running in a thread safe way is complicated and nothing actually uses it besides tests, so we are better off rewriting the tests without Running and removing it. In particular: * The call to d.target.Running() in service/debugger/debugger.go (Restart) can never return true because that line executes while holding processMutex and all continue operations are also executed while holding processMutex. * The call to dbp.Running() pkg/proc/native/proc.go (Detach) can never return true, because it's only called from debugger.(*Debugger).detach() which is also always called while holding processMutex. Since some tests are hard to write correctly without Process.Running a simpler interface, Process.NotifyResumed, is introduced. Fixes #830
-
由 aarzilli 提交于
RequestManualStop will run concurrently with trapWait, since one writes dbp.halt and the other reads it dbp.halt should be protected by a mutex. Updates #830
-
由 Florin Pățan 提交于
See https://youtrack.jetbrains.com/issue/GO-3931#comment=27-2224179 for more details
-
- 06 6月, 2017 1 次提交
-
-
由 custa 提交于
-
- 31 5月, 2017 2 次提交
-
-
由 Alessandro Arzilli 提交于
If we don't fill the Len field there will be no way for the user to distinguish maps we didn't load from empty maps.
-
由 Alessandro Arzilli 提交于
The condition that causes waitFast to fail can not happen in addThread and halt so we don't need to call the slower wait.
-
- 27 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
Buckets of maps with zero sized value types (i.e. map[T]struct{}) have zero length value arrays.
-
- 26 5月, 2017 1 次提交
-
-
由 aarzilli 提交于
A waitreason string that has invalid length (because the G struct is corrupted or being modified) could cause a crash.
-
- 25 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
type M struct was never used (as far as I know). type VariableEval interface was used for a brief period of time during the refactoring, now both its methods are functions.
-
- 23 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
The authorization prompt on macOS can take a long time to be acknowledged by the user, we should keep waiting for a connection as long as the debugserver instance we launched remains alive.
-
- 17 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
Before this commit our temp breakpoints only checked that we would stay on the same goroutine. However this isn't enough for recursive functions we must check that we stay on the same goroutine AND on the same stack frame (or, in the case of the StepOut breakpoint, the previous stack frame). This commit: 1. adds a new synthetic variable runtime.frameoff that returns the offset of the current frame from the base of the call stack. This is similar to runtime.curg 2. Changes the condition used for breakpoints on the lines of the current function to check that runtime.frameoff hasn't changed. 3. Changes the condition used for breakpoints on the return address to check that runtime.frameoff corresponds to the previous frame in the stack. 4. All other temporary breakpoints (the step-into breakpoints and defer breakpoints) remain unchanged. Fixes #828
-
- 16 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
Debugserver does not work as documented, "--" needs to be specified to pass arguments to the target process (but only if it's an argument that starts with a dash). Fixes #839
-
- 12 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
Fixes #836
-
- 10 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
You usually want to know the reason for the panic when a panic happens, it can be printed manually this is a small quality of life improvement.
-
- 09 5月, 2017 1 次提交
-
-
由 Alessandro Arzilli 提交于
If CurrentThread isn't running a goroutine SelectedGoroutine can be nil, do not blindly dereference it. Fixes #827
-