1. 27 9月, 2016 1 次提交
  2. 07 9月, 2016 1 次提交
  3. 22 7月, 2016 1 次提交
    • D
      proc: Fix stepping into runtime.duff* (#575) · 218c2b95
      dr2chase 提交于
      Detect calls that do not target a function's entrypoint
      (i.e, calls to runtime.duffzero and runtime.duffcopy) and
      instead step into them directly.  StepInto sets a breakpoint
      past the called function's prologue and expects that continue
      will hit that breakpoint, but because the call is into the
      interior of the function (well past the prologue) this fails.
      
      Fixes #573
      218c2b95
  4. 21 7月, 2016 1 次提交
  5. 03 7月, 2016 1 次提交
  6. 30 6月, 2016 1 次提交
    • A
      proc: detect when Launching non-executable files · 51c39ed1
      aarzilli 提交于
      This provides a better error message when the user tries to run dlv
      debug on a directory that does not contain a main package, when `dlv
      exec` is used with a source file.
      
      Additionally the architecture of the executable is checked as suggested
      by @alexbrainman in #443.
      
      Fixes #509
      51c39ed1
  7. 25 6月, 2016 2 次提交
    • A
      proc, terminal: step on parked goroutines · 6faa78ff
      aarzilli 提交于
      Previously Step would step through the goroutine associated with
      CurrentThread if SelectedGoroutine was parked
      6faa78ff
    • A
      proc, terminal: next on parked goroutines · d17c7c3a
      aarzilli 提交于
      Previously Next would step through the goroutine associated with
      CurrentThread if SelectedGoroutine was parked
      
      Also fixes a bug with proc.(*Process).StepInto where StepInto could
      switch to a different goroutine.
      d17c7c3a
  8. 22 6月, 2016 1 次提交
  9. 08 6月, 2016 1 次提交
  10. 30 5月, 2016 1 次提交
  11. 25 4月, 2016 1 次提交
    • A
      proc: Improvements to Variable printing (#444) · 473b6638
      Alessandro Arzilli 提交于
      * service/api: Removed unused fields of service/api.Function
      
      * proc/eval: Set return variable name to input expression
      
      * all: fine-grained control of loadValue for better variable printing
      
      Makes proc.(*Variable).loadValue loading parameters configurable
      through one extra argument of type LoadConfig.
      This interface is also exposed through the API so clients can control
      how much of a variable delve should read.
      473b6638
  12. 22 4月, 2016 1 次提交
    • M
      proc: Fix command-line arguments on Windows (#501) · 60946a75
      Matias Lahti 提交于
      * proc: add tests for command-line arguments
      
      adds tests to make sure command-line arguments are passed to Launch() properly
      
      * proc_windows: pass command-line arguments to CreateProcess()
      
      build command-line arguments according to how the standard library does it and pass the command line along to the actual syscall on Windows.
      
      see discussion in #479
      
      * proc: better testing of cmd-line arguments
      
      * proc_windows: fix a possible error-case with passing just 1 argument
      
      previously, the command line pointer passed to sys.CreateProcess was empty, if we had 0 parameters (len(cmd) == 1, as cmd[0] is the executable, so no cmdlineGo would be created, while with any argument it would as len(cmd) > 1). This might cause problems down the road, so make sure we include the command line every time, even if it seems to work without.
      
      * proc: improve testing of command-line arguments
      
      test that arguments with spaces are passed on correctly and DRY failure/success condition checking in the args test
      60946a75
  13. 29 3月, 2016 2 次提交
    • A
      proc: stacktrace refactoring · 497b5261
      aarzilli 提交于
      - made GoroutineStacktrace a method of struct G
      - made stacktrace a method of StackIterator
      - renamed StackIterator to stackIterator
      - factored out logic to obtain a stackIterator from a goroutine that's
      used by both (*G).Stacktrace and by (*G).UserCurrent
      497b5261
    • A
      proc: bugfix: Truncate stacktrace when FDE of a frame can not be found · 43756cd8
      aarzilli 提交于
      Instead of returning an error when FDE of a frame can not be found,
      just truncate the stack trace.
      
      Fixes #462
      43756cd8
  14. 09 3月, 2016 1 次提交
  15. 05 3月, 2016 1 次提交
    • A
      proc: Caching type offsets · c66c6408
      aarzilli 提交于
      Caches the mapping of type names to offset in debug_info to speed up
      variable evaluation.
      
      BEFORE:
      	BenchmarkArray-4         	     100	  13'238'441 ns/op	   0.62 MB/s
      	BenchmarkArrayPointer-4  	     200	  10'044'093 ns/op	   0.87 MB/s
      	BenchmarkMap-4           	    1000	   1'332'530 ns/op	   0.77 MB/s
      	BenchmarkGoroutinesInfo-4	      10	 114'677'462 ns/op
      	BenchmarkLocalVariables-4	    2000	   1'223'975 ns/op
      AFTER:
      	BenchmarkArray-4         	     200	   9'925'686 ns/op	   0.83 MB/s
      	BenchmarkArrayPointer-4  	     100	  11'143'930 ns/op	   0.78 MB/s
      	BenchmarkMap-4           	    2000	   1'302'520 ns/op	   0.79 MB/s
      	BenchmarkGoroutinesInfo-4	      30	  35'079'549 ns/op
      	BenchmarkLocalVariables-4	    1000	   1'137'299 ns/op
      
      Note in particular the speedup of BenchmarkGoroutinesInfo, since
      proc.(*Variable).parseG is a function we call a lot.
      c66c6408
  16. 29 2月, 2016 1 次提交
  17. 28 2月, 2016 2 次提交
  18. 19 2月, 2016 3 次提交
  19. 11 2月, 2016 1 次提交
    • A
      proc: bugs setting next breakpoints · b370e20c
      aarzilli 提交于
      1. A running goroutine is by definition not parked waiting for a
      chan recv
      2. The FDE end address is intended to be exclusive, the code
      interpreted as inclusive and sometimes ended up setting a breakpoint
      on a function other than the current one.
      b370e20c
  20. 01 2月, 2016 1 次提交
  21. 25 1月, 2016 2 次提交
    • D
      proc: step now goes to next line, including funcs · 1bda5861
      Derek Parker 提交于
      This patch modifies the `step` command to step to the next source line,
      stepping into any function encountered along the way.
      
      Fixes #360
      1bda5861
    • A
      proc: replace debug/dwarf with golang.org/x/debug/dwarf · 54f1c9b3
      aarzilli 提交于
      Typedefs that resolve to slices are not recorded in DWARF as typedefs
      but instead as structs in a way that there is no way to know they
      are really slices using debug/dwarf.
      Using golang.org/x/debug/dwarf instead this problem is solved and
      as a bonus some types are printed with a nicer names: (struct string
      → string, struct []int → []int, etc)
      
       Fixes #356 and #293
      54f1c9b3
  22. 24 1月, 2016 2 次提交
  23. 21 1月, 2016 1 次提交
  24. 16 1月, 2016 1 次提交
    • A
      proc: bugfix: clearing temp breakpoints · 453bd021
      aarzilli 提交于
      Temp breakpoints should be cleared even if a non-temp breakpoint is
      triggered on the same goroutine that the temp breakpoints are set on.
      
      Fixes #305
      453bd021
  25. 10 1月, 2016 3 次提交
    • A
      proc/variables: prefetch of target process memory · b839eda2
      aarzilli 提交于
      Prefetch the entire memory of structs and arrays and cache it instead
      of issuing readMemory calls only when we get down to primitive types.
      This reduces the number of system calls to ptrace that variables makes.
      
      Improves performance in general, greatly improving it in some
      particular cases (involving large structs).
      
      Benchmarks without prefetching:
      	BenchmarkArray-4         	      10	 132189944 ns/op	   0.06 MB/s
      	BenchmarkArrayPointer-4  	       5	 202538503 ns/op	   0.04 MB/s
      	BenchmarkMap-4           	     500	   3804336 ns/op	   0.27 MB/s
      	BenchmarkGoroutinesInfo-4	      10	 126397104 ns/op
      	BenchmarkLocalVariables-4	     500	   2494846 ns/op
      
      Benchmarks with prefetching:
      	BenchmarkArray-4         	     200	  10719087 ns/op	   0.76 MB/s
      	BenchmarkArrayPointer-4  	     100	  11931326 ns/op	   0.73 MB/s
      	BenchmarkMap-4           	    1000	   1466479 ns/op	   0.70 MB/s
      	BenchmarkGoroutinesInfo-4	      10	 103407004 ns/op
      	BenchmarkLocalVariables-4	    1000	   1530395 ns/op
      
      Improvement factors:
      	BenchmarkArray				12.33x
      	BenchmarkArrayPointer		16.97x
      	BenchmarkMap					 2.59x
      	BenchmarkGoroutinesInfo		 1.22x
      	BenchmarkLocalVariables		 1.63x
      b839eda2
    • D
      misc: cleanup and documentation · 0188dc2c
      Derek Parker 提交于
      0188dc2c
    • A
      proc/variables: bugfix: infinite loading loop through maps · 6d50aba7
      aarzilli 提交于
      Fixes #341
      6d50aba7
  26. 09 1月, 2016 4 次提交
    • A
      proc: bugfix: wrong final count in TestBreakpointCounts (linux) · 17d8aa2b
      aarzilli 提交于
      Sometimes after PtraceSingleStep the thread does not advance of a
      single instruction but is, instead, blocked immediately by a SIGSTOP
      Made singleStep repeat the process until a SIGTRAP is observed.
      
      Unsure where the SIGSTOP comes from.
      17d8aa2b
    • A
      proc: Next implemented as conditional breakpoints + Continue · 54411356
      aarzilli 提交于
      Next sets its temporary breakpoints with the condition that they
      must only activate on the current goroutine, and then calls Continue
      When Continue encounters a temporary breakpoint it clears all
      the breakpoint.
      
      User visible changes: breakpoints that get hit while executing Next
      are not ignored.
      
      This commit does not implement full conditional breakpoints
      functionality, the only condition that can be set is on the
      goroutine id.
      
      Fixes race conditions in Next affecting TestNextConcurrent.
      54411356
    • A
      proc: Continue does not work with breakpoints set on NOP (OSX) · b21686e6
      aarzilli 提交于
      Fixes #262
      b21686e6
    • A
      proc: bugfix: proc.(*Process).Continue skips breakpoints · a9e2696f
      aarzilli 提交于
      Breakpoints are skipped either because:
      1. when multiple breakpoints are hit simultaneously only one is
      processed
      2. a thread hits a breakpoint while another thread is being
      singlestepped over the breakpoint.
      
      Additionally fixed a race condition between Continue and tracee
      termination.
      a9e2696f
  27. 27 12月, 2015 1 次提交
  28. 19 12月, 2015 1 次提交