1. 22 4月, 2017 1 次提交
  2. 14 4月, 2017 1 次提交
  3. 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
  4. 09 2月, 2017 1 次提交
  5. 08 2月, 2017 1 次提交
    • 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
  6. 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
  7. 06 7月, 2016 1 次提交
  8. 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
  9. 25 4月, 2016 1 次提交
  10. 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
  11. 25 1月, 2016 1 次提交
    • 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
  12. 09 1月, 2016 1 次提交
  13. 27 12月, 2015 1 次提交
  14. 16 12月, 2015 1 次提交