1. 25 1月, 2018 1 次提交
  2. 19 1月, 2018 4 次提交
    • A
      proc,prettyprint: guard against autodereferenced escaped pointers (#1077) · bec6a65b
      Alessandro Arzilli 提交于
      Much like the bug in issue #1031 and commit
      f6f6f0bf pointers can also escape to
      the heap and then have a zero address (and no children) when we
      autodereference.
      
      1. Mark autodereferenced escaped variables with a 0 address as
         unreadable.
      2. Add guards to the pretty printers for unsafe.Pointer and pointers.
      
      Fixes #1075
      bec6a65b
    • A
      proc_test: deflake TestSystemstackOnRuntimeNewstack (#1078) · bc77ff45
      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.
      bc77ff45
    • C
      Add "l" alias for list command (#1080) · 3f3de1a9
      Chad Whitacre 提交于
      Help out those of us habituated to pdb. <:^)
      
      https://docs.python.org/3/library/pdb.html
      3f3de1a9
    • Y
      command/terminal: allow restart to change process args (#1060) · c5c41f63
      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.
      c5c41f63
  3. 12 1月, 2018 1 次提交
  4. 08 1月, 2018 1 次提交
  5. 06 1月, 2018 2 次提交
    • A
      proc: avoid scanning system stack if it's not executing cgo · 7bec20e5
      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
      7bec20e5
    • A
      service/test: disable TestClientServerConsistentExit for rr backend · 1acc1547
      aarzilli 提交于
      The rr backend doesn't report the exit status (the argument of the W
      packet seems to always be 0).
      
      Fixes #1067
      1acc1547
  6. 05 1月, 2018 1 次提交
  7. 04 1月, 2018 2 次提交
  8. 03 1月, 2018 2 次提交
  9. 02 1月, 2018 1 次提交
  10. 21 12月, 2017 2 次提交
  11. 19 12月, 2017 3 次提交
  12. 14 12月, 2017 6 次提交
  13. 08 12月, 2017 4 次提交
  14. 29 11月, 2017 4 次提交
    • A
      pkg/terminal: -offsets flag for stack command · 17bd4b52
      aarzilli 提交于
      Prints the frame and frame pointer offsets for each frame.
      17bd4b52
    • A
      proc: support cgo stacktraces · 5372588c
      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
      5372588c
    • A
      cmd, proc/test: disable optimizations on the C compiler · 5fdcd2c9
      aarzilli 提交于
      Pass CGO_FLAGS='-O0 -g' to go build to disable optimizations when
      calling the C compiler.
      5fdcd2c9
    • M
      Support --output for debug, trace, and test commands (#1028) · 6fe97fa7
      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.
      6fe97fa7
  15. 22 11月, 2017 3 次提交
  16. 21 11月, 2017 3 次提交
    • A
      pkg/proc: fix StepBreakpoint handling · bc86c662
      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.
      bc86c662
    • A
      proc: automatically dereference interfaces on member access · 5f0f77f4
      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'.
      5f0f77f4
    • A
      proc: support access to chan buffers · 844762a8
      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
      844762a8