1. 22 4月, 2017 1 次提交
  2. 19 4月, 2017 2 次提交
  3. 14 4月, 2017 1 次提交
  4. 07 4月, 2017 1 次提交
    • A
      proc refactor: split out BinaryInfo implementation (#745) · 436a3c21
      Alessandro Arzilli 提交于
      * proc: refactor BinaryInfo part of proc.Process to own type
      
      The data structures and associated code used by proc.Process
      to implement target.BinaryInfo will also be useful to support a
      backend for examining core dumps, split this part of proc.Process
      to a different type.
      
      * proc: compile support for all executable formats unconditionally
      
      So far we only compiled in support for loading the executable format
      supported by the host operating system.
      Once support for core files is introduced it is however useful to
      support loading in all executable formats, there is no reason why it
      shouldn't be possible to examine a linux coredump on windows, or
      viceversa.
      
      * proc: bugfix: do not resume threads on detach if killing
      
      * Replace BinaryInfo interface with BinInfo() method returning proc.BinaryInfo
      436a3c21
  5. 14 3月, 2017 1 次提交
    • D
      pkg/proc: tolerate absence of stack barriers in Go 1.9 (#762) · bd48358d
      dr2chase 提交于
      Stack barriers were removed in Go 1.9, and thus code that
      expected various stack-barrier-related symbols to exist
      does not find them.  Check for their absence and do not
      crash when they are missing.  Disable stack-barrier-handling
      test for 1.9 and beyond.
      
      Fixes #754.
      bd48358d
  6. 10 2月, 2017 1 次提交
  7. 09 2月, 2017 3 次提交
  8. 08 2月, 2017 2 次提交
    • A
      Improve stacktraces (#721) · e77595ce
      Alessandro Arzilli 提交于
      * service/rpccommon: fixed typo
      
      * proc: test parseG while target is in runtime.deferreturn
      
      runtime.deferreturn will change the value of curg._defer.fn in such a
      way that if the target is stopped at just the right instruction it
      may crash an incorrect implementation of parseG
      
      * proc/stack: handle stack barriers correctly
      
      Correctly handle stack barriers insterted during garbage collection.
      e77595ce
    • A
      Trace optimizations (#695) · 098457e5
      Alessandro Arzilli 提交于
      * proc: Added trace benchmark
      
      Results:
      
      BenchmarkTrace-4   	    5000	  36195899 ns/op
      
      * proc/linux: faster single step implementation.
      
      BenchmarkTrace-4   	    5000	   2093271 ns/op
      
      * proc: Cache function debug_info entries to speed up variable lookup.
      
      BenchmarkTrace-4   	    5000	   1864846 ns/op
      
      * proc/variables: Optimize FunctionArguments by prefetching frame
      
      BenchmarkTrace-4   	    5000	   1815795 ns/op
      
      * proc/variables: optimized parseG
      
      BenchmarkTrace-4   	   10000	    712767 ns/op
      098457e5
  9. 21 1月, 2017 1 次提交
  10. 17 12月, 2016 1 次提交
  11. 03 11月, 2016 1 次提交
  12. 27 10月, 2016 1 次提交
    • A
      proc: Names of concrete types of interfaces parsing their runtime._type · f62bf8d1
      aarzilli 提交于
      Generate names of the concrete types stored inside interface variables
      by fully parsing their runtime._type instead of simply using the str
      field.
      
      This allows delve to read the contents of an interface variable when
      the program imports multiple packages that have the same name. It also
      allows delve to correctly interpret some complex anonymous types.
      
      Fixes #455
      f62bf8d1
  13. 25 9月, 2016 1 次提交
  14. 07 9月, 2016 1 次提交
  15. 06 7月, 2016 1 次提交
  16. 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
  17. 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
  18. 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
  19. 23 3月, 2016 1 次提交
  20. 18 3月, 2016 1 次提交
  21. 28 2月, 2016 1 次提交
  22. 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
  23. 01 2月, 2016 1 次提交
  24. 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
  25. 24 1月, 2016 1 次提交
  26. 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
  27. 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
  28. 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
  29. 19 12月, 2015 1 次提交
  30. 16 12月, 2015 1 次提交