1. 29 12月, 2020 2 次提交
  2. 28 12月, 2020 1 次提交
    • A
      Miscellaneous fixes for problems uncovered by Github Actions tests (#2274) · 7dcd7b4d
      Alessandro Arzilli 提交于
      Fix bug in DAP test: TestEvaluateCallRequest.
      In Go 1.15 the call injection will be executed on a different goroutine
      from the goroutine where it was started on to avoid confusing the
      garbage collector, the test must be aware of this fact and use the
      goroutine ID from the stopped response instead of assuming 1 is the
      currently selected goroutine.
      
      Disables TestAttachDetach when running in Github Actions.
      
      Disable some coredump tests when running in Github Actions (core size
      limits?).
      7dcd7b4d
  3. 22 12月, 2020 1 次提交
  4. 17 12月, 2020 1 次提交
  5. 16 12月, 2020 1 次提交
  6. 15 12月, 2020 5 次提交
  7. 11 12月, 2020 3 次提交
  8. 09 12月, 2020 2 次提交
  9. 05 12月, 2020 2 次提交
  10. 01 12月, 2020 2 次提交
  11. 18 11月, 2020 1 次提交
  12. 17 11月, 2020 5 次提交
  13. 13 11月, 2020 1 次提交
  14. 10 11月, 2020 1 次提交
    • A
      proc/*: remove proc.Thread.Blocked, refactor memory access (#2206) · 08433760
      Alessandro Arzilli 提交于
      On linux we can not read memory if the thread we use to do it is
      occupied doing certain system calls. The exact conditions when this
      happens have never been clear.
      
      This problem was worked around by using the Blocked method which
      recognized the most common circumstances where this would happen.
      
      However this is a hack: Blocked returning true doesn't mean that the
      problem will manifest and Blocked returning false doesn't necessarily
      mean the problem will not manifest. A side effect of this is issue
      #2151 where sometimes we can't read the memory of a thread and find its
      associated goroutine.
      
      This commit fixes this problem by always reading memory using a thread
      we know to be good for this, specifically the one returned by
      ContinueOnce. In particular the changes are as follows:
      
      1. Remove (ProcessInternal).CurrentThread and
      (ProcessInternal).SetCurrentThread, the "current thread" becomes a
      field of Target, CurrentThread becomes a (*Target) method and
      (*Target).SwitchThread basically just sets a field Target.
      
      2. The backends keep track of their own internal idea of what the
      current thread is, to use it to read memory, this is the thread they
      return from ContinueOnce as trapthread
      
      3. The current thread in the backend and the current thread in Target
      only ever get synchronized in two places: when the backend creates a
      Target object the currentThread field of Target is initialized with the
      backend's current thread and when (*Target).Restart gets called (when a
      recording is rewound the currentThread used by Target might not exist
      anymore).
      
      4. We remove the MemoryReadWriter interface embedded in Thread and
      instead add a Memory method to Process that returns a MemoryReadWriter.
      The  backends will return something here that will read memory using
      the current thread saved by the backend.
      
      5. The Thread.Blocked method is removed
      
      One possible problem with this change is processes that have threads
      with different memory maps. As far as I can determine this could happen
      on old versions of linux but this option was removed in linux 2.5.
      
      Fixes #2151
      08433760
  15. 04 11月, 2020 1 次提交
    • A
      proc/native: fix flakyness of TestStepConcurrentDirect on linux/386 (#2179) · e69d536e
      Alessandro Arzilli 提交于
      TestStepConcurrentDirect will occasionally fail (7% of the time on my
      setup) by either causing the target processs to execute an invalid
      instruction or (more infrequently) by switching to the wrong thread.
      
      Both of those are caused by receiving SIGTRAPs for threads hitting a
      breakpoint after it has been removed (the thread hits the breakpoint,
      we stop everything and remove the breakpoint and only after we receive
      the signal).
      
      Change native.(*nativeProcess).stop to handle SIGTRAPs that can't be
      attributed to a breakpoint, a hardcoded breakpoint in the program's
      text, or manual stops (and therefore are likely caused by phantom
      breakpoint hits).
      Co-authored-by: Na <a@kra>
      e69d536e
  16. 03 11月, 2020 2 次提交
  17. 30 10月, 2020 1 次提交
  18. 22 10月, 2020 3 次提交
  19. 20 10月, 2020 1 次提交
  20. 19 10月, 2020 1 次提交
    • C
      Doc: update KnownBugs and faq. (#2196) · 9b7bc638
      chainhelen 提交于
      1. Remove bug about unsupport systems, because we has pretty error msg.
      2. Add usage for remote debugging.
      
      Relate: #1883, #1829, #861, #1332.
      9b7bc638
  21. 13 10月, 2020 3 次提交