- 19 1月, 2018 3 次提交
-
-
由 Alessandro Arzilli 提交于
Depending on how the runtime schedules our goroutines we can get unlucky and have the first call to runtime.newstack we intercept be for a different goroutine (usually the garbage collector). Only check stacktraces that happen on the same goroutine that executed main.main.
-
由 Chad Whitacre 提交于
Help out those of us habituated to pdb. <:^) https://docs.python.org/3/library/pdb.html
-
由 Yasushi Saito 提交于
* command/terminal: allow restart to change process args Add -args flag to "restart" command. For example, "restart -args a b c" will pass args a b c to the new process. Add "-c" flag to pass the checkpoint name. This is needed to disambiguate the checkpoint name and arglist. Reverted unnecessary changes. * Applied reviewer comments. Vendored argv. Change the syntax of restart. When the target is is in recording mode, it always interprets the args as a checkpoint. Otherwise, it interprets the args as commandline args. The flag "-args" is still there, to handle the case in which the user wants to pass an empty args on restart. * Add restartargs.go. Change "restart -args" to "restart -noargs" to clarify that this flag is used to start a process with an empty arg.
-
- 12 1月, 2018 1 次提交
-
-
由 Matthew Taylor 提交于
-
- 08 1月, 2018 1 次提交
-
-
由 Chad Whitacre 提交于
-
- 06 1月, 2018 2 次提交
-
-
由 aarzilli 提交于
The runtime calls into g0 in many places, not necessarily using runtime.systemstack or runtime.asmcgocall. One example of this is the call to runtime.newstack inside runtime.morestack. If we stop the process while one goroutine is executing runtime.newstack we would be unable to fully scan its stack because we don't know that we have to switch back to the goroutine stack after runtime.newstack. Instead of tracking down every possible way that the runtime switches to g0 we switch to the goroutine stack immediately after the top of the stack, unless cgo is being executed on the systemstack. Fixes #1066
-
由 aarzilli 提交于
The rr backend doesn't report the exit status (the argument of the W packet seems to always be 0). Fixes #1067
-
- 05 1月, 2018 1 次提交
-
-
由 Zaytsev Dmitriy 提交于
-
- 04 1月, 2018 2 次提交
-
-
由 Derek Parker 提交于
Improve the link ordering for the main README and add a "Getting Started" doc with basic usage information for new users.
-
由 aarzilli 提交于
I saw a test failure related to this in Travis-CI, if it happens again I would like to know what's causing it.
-
- 03 1月, 2018 2 次提交
-
-
由 Florin Patan 提交于
-
由 aarzilli 提交于
Fixes #1052
-
- 02 1月, 2018 1 次提交
-
-
由 Victor Titov 提交于
-
- 21 12月, 2017 2 次提交
-
-
由 aarzilli 提交于
Adds a configuration option (show-location-expr) that when activated will cause the whatis command to also print the DWARF location expression for a variable.
-
由 Koichi Shiraishi 提交于
As of Go 1.8, allows empty GOPATH environment variable.
-
- 19 12月, 2017 3 次提交
-
-
由 aarzilli 提交于
Sometimes delve on Appveyor can't remove the built binary before exiting and gets an "Access is denied" error when trying. See: https://ci.appveyor.com/project/derekparker/delve/build/1527
-
由 aarzilli 提交于
The last entry of the debug_line table is supposed to be valid for every PC address greater than its address.
-
由 aarzilli 提交于
So far we have evaluated the locspec "+0" the same way we evaluate all "+n" locspecs, this means that we turn the current PC into a file:line pair, then we turn back the file:line into a PC address. Normally this is harmless, however all autogenerated code returns the source position "<autogenerated>:1" which resolves back to the very first autogenerated instruction in the code. This messes up the behaviour of the "disassemble" command which uses the locspec "+0" to figure out what code to disassemble if no arguments are passed. We should make +0 always resolve to the current PC (of the given scope) so that clients can use +0 as a default locspec.
-
- 14 12月, 2017 6 次提交
- 08 12月, 2017 4 次提交
-
-
由 aarzilli 提交于
We need to reset the current file and line number. Fixes #1008
-
由 Denis Shevchenko 提交于
-
由 aarzilli 提交于
It can happen if the interface variable escaped, it's out of scope and we autodereference it.
-
由 aarzilli 提交于
On macOS, externally linked programs will have an abbrev for DW_TAG_subprogram without the haschildren flag set. We should handle this case instead of expecting all DW_TAG_subprogram entries to have list of children. Fixes #1034
-
- 29 11月, 2017 4 次提交
-
-
由 aarzilli 提交于
Prints the frame and frame pointer offsets for each frame.
-
由 aarzilli 提交于
When creating a stack trace we should switch between the goroutine stack and the system stack (where cgo code is executed) as appropriate to reconstruct the logical stacktrace. Goroutines that are currently executing on the system stack will have the SystemStack flag set, frames of the goroutine stack will have a negative FrameOffset (like always) and frames of the system stack will have a positive FrameOffset (which is actually just the CFA value for the frame). Updates #935
-
由 aarzilli 提交于
Pass CGO_FLAGS='-O0 -g' to go build to disable optimizations when calling the C compiler.
-
由 Martin Tournoij 提交于
* Support --output for debug, trace, and test commands With the `--output` parameter you can configure the output binary. For example: dlv debug --output /tmp/xxx Will build the binary to `/tmp/xxx`, instead of always putting it as `debug` in the current directory. This ensures that the command always works (even if there is already a file or directory named `debug`) and doesn't write to the source directory. Especially for things like Delve/Vim integration this is a good thing to have, I think. * Address PR feedback and add a test - We don't need to use `filepath.IsAbs()` on startup; I added that because it previously did `"./" + debugname` everywhere, but I don't think that's needed at all, since `pathname` without a leading `./` implies the current directory. - Repurpose the existing `TestIssue398` to also test the `--output` flag. Also fix an issue where tests wouldn't work if `GOPATH` has multiple entries (e..g `GOPATH=$HOME/go:$HOME/mygocode`). - Print an error if we can't remove the debug binary on exit instead of failing silently. Not strictly related to this PR, but a good change to add I think. * Also warn when delve can't remove the binary in test/trace I only added that to debug, but good to issue this warning consistently.
-
- 22 11月, 2017 3 次提交
-
-
由 aarzilli 提交于
These are emitted by C compilers but also by the current development version of the go compiler with the dwarflocationlists flag.
-
由 aarzilli 提交于
-
由 aarzilli 提交于
Either the CPU or the kernel may not support the calls we do when retrieving floating point registers, this isn't an error we should propagate. Also improve the error reporint of pkg/proc/native.fpRegisters. Fixes #1022
-
- 21 11月, 2017 5 次提交
-
-
由 aarzilli 提交于
StepBreakpoints are set on CALL instructions, when they are hit we disassemble the current instruction, figure out the destination address and set a breakpoint after the prologue of the called function. In order to disassemble the current instruction we disassemble the area of memory starting from PC and going to PC+15 (because 15 bytes is the maximum length of one instruction on AMD64). This means that we won't just disassemble one instruction but also a few instructions following it ending with one truncated instruction. This usually works fine but sometimes the disassembler will panic with an array out of bounds error when trying to disassemble a truncated instruction. To avoid this problem this commit changes the funciton disassemble to take one extra parameter, singleInstr, when singleInstr is set disassemble will quit after disassembling a single instruction.
-
由 aarzilli 提交于
If 'iv' is an interface variable with a struct as a concrete value let 'iv.A' evaluate to the access to field 'A' of the concrete value of 'iv'.
-
由 aarzilli 提交于
Replace the unsafe.Pointer type of the buf field of channels with the appropriate array type, allow expressions accessing member field of the channel struct. Fixes #962
-
由 aarzilli 提交于
Conditional breakpoints with unmet conditions would cause next and step to skip the line. This breakpoint changes the Kind field of proc.Breakpoint from a single value to a bit field, each breakpoint object can represent simultaneously a user breakpoint and one internal breakpoint (of which we have several different kinds). The breakpoint condition for internal breakpoints is stored in the new internalCond field of proc.Breakpoint so that it will not conflict with user specified conditions. The breakpoint setting code is changed to allow overlapping one internal breakpoint on a user breakpoint, or a user breakpoint on an existing internal breakpoint. All other combinations are rejected. The breakpoint clearing code is changed to clear the UserBreakpoint bit and only remove the phisical breakpoint if no other bits are set in the Kind field. ClearInternalBreakpoints does the same thing but clearing all bits that aren't the UserBreakpoint bit. Fixes #844
-
由 aarzilli 提交于
Move some duplicate code, related to breakpoints, that was in both backends into a single place. This is in preparation to solve issue #844 (conditional breakpoints make step and next fail) which will make this common breakpoint code more complicated.
-