1. 09 12月, 2020 2 次提交
  2. 05 12月, 2020 2 次提交
  3. 01 12月, 2020 2 次提交
  4. 18 11月, 2020 1 次提交
  5. 17 11月, 2020 5 次提交
  6. 13 11月, 2020 1 次提交
  7. 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
  8. 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
  9. 03 11月, 2020 2 次提交
  10. 30 10月, 2020 1 次提交
  11. 22 10月, 2020 3 次提交
  12. 20 10月, 2020 1 次提交
  13. 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
  14. 13 10月, 2020 4 次提交
  15. 07 10月, 2020 1 次提交
    • S
      service/dap: add "panic" and "fatal error" as stopped reasons (#2186) · 5632cf92
      Suzy Mueller 提交于
      * service/dap: add "panic" and "fatal error" as stopped reasons
      
      The unrecovered panic and fatal throw breakpoints are not set by the
      user. We now check for these special breakpoints and send appropriate
      stopped reasons to the client.
      
      * Add getter for StopReason
      
      * Set threadID and stop reason correctly
      
      If there is no selected goroutine, no goroutine ID should be set in
      the stopped event.
      
      The stopped reason can be better determined using the process
      StopReason.
      
      * Update panic breakpoint on next test to work with Go 1.13 runtime
      
      When running panic.go with Go1.13, the next line that is stepped to
      after panic('boom') is the defer function in the runtime package. The
      unrecovered panic breakpoint is not hit until after several steps.
      
      The test now steps until the breakpoint is hit, or the program terminates
      without hitting the unrecovered panic breakpoint, in which case it fails.
      
      * Skip breakpoint on next test in < Go 1.14
      5632cf92
  16. 03 10月, 2020 1 次提交
  17. 29 9月, 2020 1 次提交
  18. 28 9月, 2020 1 次提交
  19. 24 9月, 2020 4 次提交
    • A
      proc/tests: keep track of tests skipped due to backend problems (#2178) · 84328ed8
      Alessandro Arzilli 提交于
      * proc/tests: keep track of tests skipped due to backend problems
      
      Mark tests skipped due to backend problems and add a script to keep
      track of them.
      
      * Travis-CI: add ignorechecksum option to chocolatey command
      
      Looks like a configuration problem on chocolatey's end.
      84328ed8
    • A
      proc: use argument position for addr only when injecting function calls (#2181) · 7e00666b
      Alessandro Arzilli 提交于
      * proc: use argument position for addr only when injecting function calls
      
      We can not, in general, use the argument position to determine the
      address of a formal parameter, it will not work in presence of
      optimizations or inlining. In those cases formal arguments could be
      stored in registers.
      
      Fixes #2176
      
      * Travis-CI: add ignorechecksum option to chocolatey command
      
      Looks like a configuration problem on chocolatey's end.
      Co-authored-by: Na <a@kra>
      7e00666b
    • A
      dwarf/line: ignore end_of_sequence entry if AllPCsBetween (#2180) · 2bd38fff
      Alessandro Arzilli 提交于
      * dwarf/line: ignore end_of_sequence entry if AllPCsBetween
      
      Go 1.15 (but possibly prior versions of Go too) has a tendency to use
      an address in the middle of an instruction for this entry, but if it
      was correct it would be after the last instruction of the function
      anyway.
      
      This problem manifests especially frequently as a target crash in
      TestStepConcurrentPtr on linux/arm64 (~6% of the runs).
      
      * Travis-CI: add ignorechecksum option to chocolatey command
      
      Looks like a configuration problem on chocolatey's end.
      Co-authored-by: Na <a@kra>
      2bd38fff
    • A
      service/*: remove threadID argument of (*Debugger).PackageVariables (#2182) · 310a124d
      Alessandro Arzilli 提交于
      * Travis-CI: add ignorechecksum option to chocolatey command
      
      Looks like a configuration problem on chocolatey's end.
      
      * service/*: remove threadID argument of (*Debugger).PackageVariables
      
      Which thread is used doesn't make any difference to the list of package
      variables that is returned and this option was only ever used by an old
      v1 API call.
      310a124d
  20. 16 9月, 2020 4 次提交
    • A
      proc: resolve symlinks when searching for split debug_info if path is /proc/pid/exe (#2170) · 85952c08
      Alessandro Arzilli 提交于
      * Revert "proc: Find executable should follow symbol links."
      
      This reverts commit 3e04ad0f.
      
      * proc: resolve symlinks when searching for split debug_info if path is /proc/pid/exe
      
      Fixes #2168
      85952c08
    • E
      service/dap: pull in newer version of google/go-dap (#2167) · 34777729
      Eli Bendersky 提交于
      Pulls in v0.3.0 of google/go-dap; this version has some fixes and API
      improvements which service/dap will be able to leverage to clean up some
      code.
      34777729
    • A
      proc/gdbserial: fix two protocol bugs (#2172) · 4dc8aedc
      Alessandro Arzilli 提交于
      During the testing of the core dump generation feature two bugs were
      discovered in gdbserial:
      
      1. we don't check that both bytes of the checksum are read, if the
         buffer only has one byte we can end up reading only one byte instead
         of two and the second byte will mess up the parsing of the next
         packet
      2. binary encoded packets can start with an 'E' and not be errors, when
         using binary responses add an extra check for the lenght of the
         response before deciding that the response is an error.
         Unfortunately this encoding is inherently ambiguous (we can't
         distinguish a 3 byte response starting with 'E' from an error) so
         binary requests that lead to short responses should be avoided.
      
      Testing this is complicated, they will be tested implicitly by the
      upcoming core dump test.
      Co-authored-by: Na <a@kra>
      4dc8aedc
    • P
      service/dap: Add support for package globals to scopes/variables requests (#2160) · 4980fff8
      polinasok 提交于
      * Support global variables
      
      * Respond to review comments
      
      * Clarify comment
      
      * Add more details to test error messages
      
      * Remove flaky main..inittask checks
      
      * Rename globals flag to match vscode-go
      
      * Normalize filepath with slash separator
      
      * Improve handling for unknown package
      
      * Tweak error message
      
      * More refactoring, normalization and error details to deal with Win test failures
      
      * Clean up optional launch args processing
      
      * Add CurrentPackage to debugger and use instead of ListPackagesBuildInfo
      Co-authored-by: NPolina Sokolova <polinasok@users.noreply.github.com>
      4980fff8
  21. 11 9月, 2020 1 次提交