1. 27 9月, 2016 1 次提交
  2. 25 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. 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
  5. 30 5月, 2016 1 次提交
    • A
      Go 1.7 compatibility (#524) · 9bc6ad4f
      Alessandro Arzilli 提交于
      * tests: update to cope with go1.7 SSA compiler
      
      * de-vendored golang.org/x/debug/dwarf
      
      We need our own tweaked version
      
      * dwarf/debug/dwarf: always use the entry's name attribute
      
      Using the name attribute leads to better type names as well as fixes
      inconsistencies between 1.5, 1.6 and 1.7.
      
      * proc: Updated loadInterface to work with go1.7
      
      go1.7 changed the internal representation of types, removing the string
      field from runtime._type.
      Updated loadInterface to use the new str field.
      9bc6ad4f
  6. 18 5月, 2016 1 次提交
  7. 25 4月, 2016 3 次提交
    • A
      terminal,service: auto-continue during next and step (#448) · c4e01da5
      Alessandro Arzilli 提交于
      * proc: bugfix: StepInto can not function when temp bps exist
      
      * terminal,service: auto-continue during next and step
      
      Make dlv call continue automatically when a breakpoint is hit on a
      different goroutine during a next or step operation.
      Added API hooks to implement the other solution to this problem (cancel
      the next/step operation if a different breakpoint is hit).
      
      Fixes #387
      c4e01da5
    • A
      proc: allow use of quoted type names in type casts (#434) · a7a0cc75
      Alessandro Arzilli 提交于
      If we are unable to correctly guess how a type is serialized in
      debug_info let the user specify it directly.
      
      Workaround for #455
      a7a0cc75
    • 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
  8. 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
  9. 09 3月, 2016 1 次提交
  10. 29 2月, 2016 1 次提交
  11. 25 2月, 2016 2 次提交
    • A
      terminal: Next does not fill BreakpointInfo · 9e588fef
      aarzilli 提交于
      Fixes #411
      9e588fef
    • A
      debugger: bugfix: make delve API thread safe · 82ef3cce
      aarzilli 提交于
      proc.(*Process) methods are not thread safe, multiple clients
      connecting simultaneously to a delve server (Issue #383) or a even
      a single over-eager client (Issue #408) can easily crash it.
      Additionally (Issue #419) calls to client.(*RPCClient).Halt can
      crash the server because they can result in calling the function
      debug/dwarf.(*Data).Type simultaneously in multiple threads which
      will cause it to return incompletely parsed dwarf.Type values.
      
      Fixes #408, #419 (partial)
      82ef3cce
  12. 19 2月, 2016 2 次提交
  13. 12 2月, 2016 1 次提交
  14. 11 2月, 2016 2 次提交
    • 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
    • A
      proc: Bug loading maps · 51e87386
      aarzilli 提交于
      Past the maximum recursion depth maps shouldn't be loaded at all,
      adding map children and not loading them breaks assumptions in
      the prettyprinter.
      
      Fixes #406
      51e87386
  15. 06 2月, 2016 1 次提交
  16. 01 2月, 2016 1 次提交
  17. 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
  18. 18 1月, 2016 1 次提交
    • A
      service/locations: hooked expression evaluator to location specifiers · 70cbbdc0
      aarzilli 提交于
      Location specifiers starting with '*' can be followed by any
      expression supported by the evaluator.
      The expression should evaluate to either an integer (which will be
      interpreted as an address) or to a function pointer (which will be
      dereferenced to get the function's entry point).
      70cbbdc0
  19. 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
  20. 10 1月, 2016 2 次提交
    • 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
    • A
      proc/variables: bugfix: infinite loading loop through maps · 6d50aba7
      aarzilli 提交于
      Fixes #341
      6d50aba7
  21. 09 1月, 2016 2 次提交
  22. 27 12月, 2015 1 次提交
  23. 19 12月, 2015 1 次提交
  24. 16 12月, 2015 4 次提交
  25. 07 11月, 2015 4 次提交
  26. 04 11月, 2015 1 次提交
    • A
      proc: Implements expression interpreter · 43b64ec3
      aarzilli 提交于
      Supported operators:
      
      - All (binary and unary) operators between basic types except <-,
      ++ and -- (includes & to take the address of an expression)
      - Comparison operators between supported compound types
      - Typecast of integer constants into pointer types
      - struct members
      - indexing of arrays, slices and strings
      - slicing of arrays, slices and strings
      - pointer dereferencing
      - true, false and nil constants
      
      Implements #116, #117 and #251
      43b64ec3