1. 19 7月, 2017 1 次提交
    • A
      proc/eval: optimize variable lookup (#925) · 222cf7fc
      Alessandro Arzilli 提交于
      Variable lookup is slow because it requires a full scan of debug_info
      to check for package variables, this doesn't matter much in interactive
      use but can slow down evaluation of breakpoint conditions
      significantly.
      
      Providing benchmark proof for this is hard since this effect doesn't
      show for small programs with small debug_info sections.
      222cf7fc
  2. 08 7月, 2017 2 次提交
    • A
      proc: fix interaction of RequestManualStop and conditional breakpoints (#876) · 07e53f7c
      Alessandro Arzilli 提交于
      * proc: fix interaction of RequestManualStop and conditional breakpoints
      
      A conditional breakpoint that is hit but has the condition evaluate to
      false can block a RequestManualStop from working. If the conditional
      breakpoint is set on an instruction that is executed very frequently by
      multiple goroutines (or many conditional breakpoints are set) it could
      prevent all calls to RequestManualStop from working.
      
      This commit fixes the problem by changing proc.Continue to exit
      unconditionally after a RequestManualStop is called.
      
      * proc/gdbserial: fix ContinueOnce getting stuck on macOS
      
      Fixes #902
      07e53f7c
    • A
      proc/eval: fix interface equality with nil (#914) · 8276ba06
      Alessandro Arzilli 提交于
      Fixes #904
      8276ba06
  3. 30 6月, 2017 3 次提交
  4. 27 6月, 2017 3 次提交
  5. 22 6月, 2017 1 次提交
    • H
      proc: read G struct offset from runtime.tlsg if possible (#883) · 7d2834a9
      heschik 提交于
      When a Go program is externally linked, the external linker is
      responsible for picking the TLS offset. It records its decision in the
      runtime.tlsg symbol. Read the offset from that rather than guessing -16.
      
      This implementation causes a regression: 1.4 and earlier will no longer
      work.
      7d2834a9
  6. 21 6月, 2017 2 次提交
  7. 20 6月, 2017 1 次提交
  8. 13 6月, 2017 6 次提交
  9. 06 6月, 2017 1 次提交
  10. 31 5月, 2017 2 次提交
  11. 27 5月, 2017 5 次提交
  12. 26 5月, 2017 1 次提交
  13. 25 5月, 2017 1 次提交
    • A
      pkg/proc: remove unused types (#850) · 53908019
      Alessandro Arzilli 提交于
      type M struct was never used (as far as I know).
      type VariableEval interface was used for a brief period of time during
      the refactoring, now both its methods are functions.
      53908019
  14. 23 5月, 2017 1 次提交
  15. 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
  16. 16 5月, 2017 1 次提交
  17. 12 5月, 2017 1 次提交
  18. 10 5月, 2017 1 次提交
  19. 09 5月, 2017 1 次提交
  20. 06 5月, 2017 3 次提交
  21. 05 5月, 2017 2 次提交