1. 28 4月, 2020 1 次提交
    • M
      proc: Find executable should follow symbol links. · 3e04ad0f
      Min Zhou 提交于
      On linux platform, we simply treated `/proc/$pid/exe` as the
      executable of targeting process when doing `dlv attach`. The
      `/proc/$pid/exe` is a symbol link of the real executable file.
      Delve couldn't find the corrsponding external debug file based on the
      symbol link:
      
      ```
      could not attach to pid $pid: could not open debug info
      ```
      
      The fix is to evaluate the symbol links to the actual executable path.
      3e04ad0f
  2. 24 4月, 2020 1 次提交
  3. 21 4月, 2020 1 次提交
  4. 18 4月, 2020 2 次提交
  5. 17 4月, 2020 2 次提交
  6. 15 4月, 2020 2 次提交
  7. 14 4月, 2020 1 次提交
  8. 11 4月, 2020 6 次提交
  9. 10 4月, 2020 2 次提交
    • A
      Miscellaneous debug_line improvements (#1999) · c3a4d726
      Alessandro Arzilli 提交于
      * dwarf/line: implement DW_LNE_set_discriminator
      
      We don't use the discriminator field in any way but we need to at least
      parse it to support debub_line programs that use it.
      
      * dwarf/line: support parsing DWARF4 debug_line sections
      
      There is an extra field maximum_operations_per_instruction that is used
      for VLIW CPUs. We don't support this feature but we have to at least
      parse the field to not crash.
      c3a4d726
    • D
      gdbserial/gdbserver: Dynamically resolve debugserver binary (#1994) · bc30b539
      Darren Rambaud 提交于
      * gdbserial/gdbserver: Dynamically resolve debugserver binary
      
      Instead of hardcoding the absolute path to the Command Line
      Tools (CLT) binary, will attempt to resolve the path at the
      $PATH, or at the Xcode bundle. If none are available, will
      fallback to the default CLT location.
      
      Fixes #986
      
      * gdbserial/gdbserver: Log outgoing executed commands
      
      Add logging to capture the executable and associated arguments used
      in LLDBLaunch and LLDBAttach
      
      Related to #986
      
      * gdbserial/gdbserver: Add unit tests for helper function
      
      Define unit tests for helper function. Setup each test to temporarily make
      PATH variable, and file system changes, and subsequently revert them.
      
      Related to #986
      
      * gdbserial/gdbserver: Lazily load function
      
      Lazily obtain absolute path to avoid increasing load times.
      
      Remove flaky tests.
      
      Related to #986
      bc30b539
  10. 08 4月, 2020 1 次提交
  11. 06 4月, 2020 1 次提交
    • A
      Documentation: add modules mode note to install documentation · 3a726467
      aarzilli 提交于
      1. Adds a note to the documentation describing how to use 'go get' in
         modules mode
      2. Removes the '-u' option which, when 'go get' is used incorrectly
         will make 'go' try to compile Delve with unsupported dependencies
      3. Removed obsolete note about Go 1.5 vendor experiment.
      
      Fixes #1988
      3a726467
  12. 05 4月, 2020 1 次提交
  13. 04 4月, 2020 1 次提交
  14. 03 4月, 2020 1 次提交
  15. 02 4月, 2020 2 次提交
  16. 01 4月, 2020 5 次提交
  17. 31 3月, 2020 1 次提交
  18. 29 3月, 2020 2 次提交
  19. 28 3月, 2020 1 次提交
  20. 27 3月, 2020 1 次提交
  21. 26 3月, 2020 2 次提交
  22. 25 3月, 2020 1 次提交
    • A
      proc/gdbserial,debugger: allow clients to stop a recording (#1890) · 8bb93e9a
      Alessandro Arzilli 提交于
      Allows Delve clients to stop a recording midway by sending a
      Command('halt')
      request.
      
      This is implemented by changing debugger.New to start recording the
      process on a separate goroutine while holding the processMutex locked.
      By locking the processMutex we ensure that almost all RPC requests will
      block until the recording is done, since we can not respond correctly
      to any of them.
      API calls that do not require manipulating or examining the target
      process, such as "IsMulticlient", "SetApiVersion" and
      "GetState(nowait=true)" will work while we are recording the process.
      
      Two other internal changes are made to the API: both GetState and
      Restart become asynchronous requests, like Command. Restart because
      this way it can be interrupted by a StopRecording request if the
      rerecord option is passed.
      GetState because clients need a call that will block until the
      recording is compelted and can also be interrupted with a
      StopRecording.
      
      Clients that are uninterested in allowing the user to stop a recording
      can ignore this change, since eventually they will make a request to
      Delve that will block until the recording is completed.
      
      Clients that wish to support this feature must:
      
      1. call GetState(nowait=false) after connecting to Delve, before any
         call that would need to manipulate the target process
      2. allow the user to send a StopRecording request during the initial
         GetState call
      3. allow the user to send a StopRecording request during any subsequent
         Restart(rerecord=true) request (if supported).
      
      Implements #1747
      8bb93e9a
  23. 24 3月, 2020 2 次提交
    • D
      pkg/proc: Reset time after continue in benchmarks · 475551cf
      Derek Parker 提交于
      Reset the timer once we start executing the code paths we actually care
      to measure, since the setup and continue steps can be relatively
      expensive.
      
      Also, disable recording on benchmarks. This seems less useful, and also
      cuts out a lot of noise when benchmarks are run.
      475551cf
    • D
      pkg/proc: Clean up proc.go · c4fd80fc
      Derek Parker 提交于
      This patch moves out unrelated types, variables and functions from
      proc.go into a place where they make more sense.
      c4fd80fc