1. 17 5月, 2017 1 次提交
    • A
      proc: next, stepout should work on recursive goroutines (#831) · 35405583
      Alessandro Arzilli 提交于
      Before this commit our temp breakpoints only checked that we would stay
      on the same goroutine.
      However this isn't enough for recursive functions we must check that we
      stay on the same goroutine AND on the same stack frame (or, in the case
      of the StepOut breakpoint, the previous stack frame).
      
      This commit:
      1. adds a new synthetic variable runtime.frameoff that returns the
         offset of the current frame from the base of the call stack.
         This is similar to runtime.curg
      2. Changes the condition used for breakpoints on the lines of the
         current function to check that runtime.frameoff hasn't changed.
      3. Changes the condition used for breakpoints on the return address to
         check that runtime.frameoff corresponds to the previous frame in the
         stack.
      4. All other temporary breakpoints (the step-into breakpoints and defer
         breakpoints) remain unchanged.
      
      Fixes #828
      35405583
  2. 22 4月, 2017 2 次提交
    • A
      proc: refactoring: merge target into proc · b6fe5aeb
      aarzilli 提交于
      - moved target.Interface into proc as proc.Process
      - rename proc.IThread to proc.Thread
      - replaced interfaces DisassembleInfo, Continuable and
        EvalScopeConvertible with Process.
      - removed superfluous Gdbserver prefix from types in the gdbserial
        backend.
      - removed superfluous Core prefix from types in the core backend.
      b6fe5aeb
    • A
      proc: refactoring: split backends to separate packages · 15bac719
      aarzilli 提交于
      - move native backend to pkg/proc/native
      - move gdbserver backend to pkg/proc/gdbserial
      - move core dumps backend to pkg/proc/core
      15bac719
  3. 19 4月, 2017 1 次提交
  4. 14 4月, 2017 1 次提交
  5. 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
  6. 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
  7. 23 2月, 2017 1 次提交
    • A
      proc/stack: use BP when FDE is not available · 92faa95b
      aarzilli 提交于
      On Windows we can sometimes encounter threads stopped in locations for
      which we do not have entries in debug_frame.
      These cases seem to be due to calls to Windows API in the go runtime,
      we can still produce a (partial) stack trace in this circumstance by
      following frame pointers (starting with BP).
      We still prefer debug_frame entries when available since go functions
      do not have frame pointers before go1.8.
      92faa95b
  8. 17 2月, 2017 1 次提交
    • A
      proc: use original PC for Call position (#736) · dd3cc63d
      Alessandro Arzilli 提交于
      The PC we have is relative to the first instruction after the CALL
      instruction currently being executed.
      
      Anyone watching a disassembly will understand what's happening if we
      report the return PC, but reporting the first PC of the current line is
      useless and confusing.
      dd3cc63d
  9. 09 2月, 2017 2 次提交
  10. 08 2月, 2017 1 次提交
    • 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
  11. 20 12月, 2016 1 次提交
  12. 03 7月, 2016 1 次提交
  13. 25 6月, 2016 1 次提交
  14. 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
  15. 14 5月, 2016 1 次提交
  16. 29 3月, 2016 4 次提交
  17. 18 3月, 2016 1 次提交
  18. 02 2月, 2016 1 次提交
  19. 10 1月, 2016 1 次提交
  20. 19 10月, 2015 1 次提交
    • A
      terminal,proc: Improved goroutine printing · cb529eaf
      aarzilli 提交于
      Three locations are returned for goroutines: its current location,
      its current location excluding unexported runtime functions and
      the location of its go instruction.
      The command 'goroutines' takes a new parameter to select which
      location to print (defaulting to current location w/o runtime)
      cb529eaf
  21. 20 9月, 2015 1 次提交
  22. 18 9月, 2015 1 次提交
  23. 06 9月, 2015 1 次提交
  24. 20 8月, 2015 1 次提交
    • D
      command (next): Improvements for parallel programs · b9846c76
      Derek Parker 提交于
      This patch aims to improve how Delve tracks the current goroutine,
      especially in very highly parallel programs. The main spirit of this
      patch is to ensure that even in situations where the goroutine we care
      about is not executing (common for len(g) > len(m)) we still end up back
      on that goroutine as a result of executing the 'next' command.
      
      We accomplish this by tracking our original goroutine id, and any time a
      breakpoint is hit or a threads stops, we examine the stopped threads and
      see if any are executing the goroutine we care about. If not, we set
      'next' breakpoint for them again and continue them. This is done so that
      one of those threads can eventually pick up the goroutine we care about
      and begin executing it again.
      b9846c76
  25. 10 8月, 2015 1 次提交
  26. 02 8月, 2015 1 次提交
  27. 29 7月, 2015 1 次提交
  28. 17 7月, 2015 1 次提交
  29. 10 7月, 2015 1 次提交
  30. 01 7月, 2015 1 次提交
    • D
      Cleanup tracepoint commit · 6b99c5f5
      Derek Parker 提交于
      * Cleanup comments
      * Cleanup naming in certain instances
      * Modify stacktrace to return current location
      6b99c5f5
  31. 30 6月, 2015 1 次提交
  32. 21 6月, 2015 2 次提交
  33. 14 6月, 2015 1 次提交
  34. 13 6月, 2015 1 次提交