1. 09 1月, 2016 4 次提交
    • A
      proc: bugfix: wrong final count in TestBreakpointCounts (linux) · 17d8aa2b
      aarzilli 提交于
      Sometimes after PtraceSingleStep the thread does not advance of a
      single instruction but is, instead, blocked immediately by a SIGSTOP
      Made singleStep repeat the process until a SIGTRAP is observed.
      
      Unsure where the SIGSTOP comes from.
      17d8aa2b
    • A
      proc: Next implemented as conditional breakpoints + Continue · 54411356
      aarzilli 提交于
      Next sets its temporary breakpoints with the condition that they
      must only activate on the current goroutine, and then calls Continue
      When Continue encounters a temporary breakpoint it clears all
      the breakpoint.
      
      User visible changes: breakpoints that get hit while executing Next
      are not ignored.
      
      This commit does not implement full conditional breakpoints
      functionality, the only condition that can be set is on the
      goroutine id.
      
      Fixes race conditions in Next affecting TestNextConcurrent.
      54411356
    • A
      proc: Continue does not work with breakpoints set on NOP (OSX) · b21686e6
      aarzilli 提交于
      Fixes #262
      b21686e6
    • A
      proc: bugfix: proc.(*Process).Continue skips breakpoints · a9e2696f
      aarzilli 提交于
      Breakpoints are skipped either because:
      1. when multiple breakpoints are hit simultaneously only one is
      processed
      2. a thread hits a breakpoint while another thread is being
      singlestepped over the breakpoint.
      
      Additionally fixed a race condition between Continue and tracee
      termination.
      a9e2696f
  2. 27 12月, 2015 1 次提交
  3. 19 12月, 2015 1 次提交
  4. 07 11月, 2015 1 次提交
  5. 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
  6. 29 10月, 2015 2 次提交
  7. 23 10月, 2015 1 次提交
    • D
      proc: Improve 'next' functionality · 28e0a322
      Derek Parker 提交于
      Instead of trying to be clever and make an 'educated guess' as to where
      the flow of control may go next, simple do the more naive, yet correct,
      approach of setting a breakpoint everywhere we can in the function and
      seeing where we end up. On top of this we were already setting a
      breakpoint at the return address and deferred functions, so that remains
      the same.
      
      This removes a lot of gnarly, hard to maintain code and takes all the
      guesswork out of this command.
      
      Fixes #281
      28e0a322
  8. 10 10月, 2015 1 次提交
  9. 05 10月, 2015 1 次提交
  10. 27 9月, 2015 1 次提交
    • D
      proc: Remove hardware assisted breakpoints · 466960d9
      Derek Parker 提交于
      Only use software breakpoints for now. The reasoning is because it
      complicates the code without justification, and is only supported on
      Linux. Eventually, once watchpoints are properly implemented we will
      revive some of this code. Also, if it is ever necessary to actually set
      a hw breakpoint we can revive that code as well.
      
      All future versions of this code will include support for OSX before
      being merged back in.
      466960d9
  11. 18 9月, 2015 1 次提交
  12. 06 9月, 2015 1 次提交
  13. 30 8月, 2015 1 次提交
    • O
      dwarf/line: Support for parsing multiple file tables · d5e00a58
      omie 提交于
      Support multiple file / directory tables for multiple compilation units.
      
      - added a type DebugLines that can hold number of DebugLineInfo
      - added a supporting attribute to DebugLineInfo called 'Lookup' which is to be
      used to quickly lookup if file exists in FileNames slice
      - added supporting methods to lookup and return corresponding DebugLineInfo
      - changed the debug_line parsing behavior to read all the available tables and
      push them to DebugLines
      
      - since Process.lineInfo is now a slice, it was breaking AllPCsBetween as well
      - updated that function's definition to accept a new filename parameter to be
      able to extract related DebugLineInfo
      - updated calls to AllPCsBetween
      
      - fixed tests that were broken due to attribute type change in Process
      - updated _fixtures/cgotest program to include stdio.h, so that it updates
      .debug_line header
      - added a test to check 'next' in a cgo binary
      - OSX - 1.4 does not support cgo, handle that in new testcase
      d5e00a58
  14. 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
  15. 12 8月, 2015 2 次提交
  16. 11 8月, 2015 1 次提交
  17. 10 8月, 2015 1 次提交
  18. 09 8月, 2015 2 次提交
    • A
      Improve commands which take a location spec · 8e8d2660
      aarzilli 提交于
      Breakpoints, tracepoints, etc.. take a location spec as input. This
      patch improves the expressiveness of that API. It allows:
      
      * Breakpoint at line
      * Breakpoint at function (handling package / receiver smoothing)
      * Breakpoint at address
      * Breakpoint at file:line
      * Setting breakpoint based off regexp
      8e8d2660
    • D
      Bind to less used port in test · 869884b9
      Derek Parker 提交于
      869884b9
  19. 02 8月, 2015 1 次提交
  20. 29 7月, 2015 2 次提交
  21. 28 7月, 2015 5 次提交
  22. 16 7月, 2015 1 次提交
  23. 11 7月, 2015 2 次提交
  24. 08 7月, 2015 1 次提交
    • D
      Inject SIGTRAP for manual stop · 4d1dc5ad
      Derek Parker 提交于
      Instead of fighting against the normal flow, just signal a SIGTRAP and
      let the existing flow handle it, as long as we set the halt flag
      correctly the system should halt.
      4d1dc5ad
  25. 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
  26. 30 6月, 2015 1 次提交
  27. 26 6月, 2015 2 次提交