1. 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
  2. 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
  3. 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
  4. 23 3月, 2016 1 次提交
  5. 18 3月, 2016 1 次提交
  6. 28 2月, 2016 1 次提交
  7. 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
  8. 01 2月, 2016 1 次提交
  9. 25 1月, 2016 2 次提交
    • 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
    • D
      proc: refactor parseg · afe77160
      Derek Parker 提交于
      Instead of doing a bunch of manual DWARF / memory parsing we instead can
      just dogfood the internal Variable API to retrieve the G struct.
      afe77160
  10. 24 1月, 2016 1 次提交
  11. 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
  12. 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
  13. 10 1月, 2016 4 次提交
    • 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: fix 2 typos · 32a0c752
      aarzilli 提交于
      32a0c752
    • D
      misc: cleanup and documentation · 0188dc2c
      Derek Parker 提交于
      0188dc2c
    • A
      proc/variables: bugfix: infinite loading loop through maps · 6d50aba7
      aarzilli 提交于
      Fixes #341
      6d50aba7
  14. 19 12月, 2015 1 次提交
  15. 16 12月, 2015 5 次提交
  16. 07 11月, 2015 4 次提交
  17. 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
  18. 29 10月, 2015 2 次提交
  19. 19 10月, 2015 2 次提交
  20. 07 10月, 2015 3 次提交
  21. 02 10月, 2015 1 次提交
    • A
      proc/variables: chanRecvReturnAddress uses outdated frame info · d30221da
      aarzilli 提交于
      g.SP refers to the frame the goroutine was in the last time it was
      scheduled out. Instead of calling proc.(*Process).stacktrace directly
      we should call proc.(*Process).GoroutineStacktrace that substitutes
      fresh values retrieved from thread registers when necessary.
      This bug leads to occasional problems with `next`.
      d30221da
  22. 30 9月, 2015 1 次提交
  23. 29 9月, 2015 1 次提交