1. 24 7月, 2019 1 次提交
  2. 18 7月, 2019 1 次提交
  3. 13 7月, 2019 2 次提交
    • R
      *: FreeBSD initial support (#1480) · df65be43
      Robert Ayrapetyan 提交于
      * FreeBSD initial support
      
      * first code review fixes
      
      * regs slice upd
      
      * execPtraceFunc wrap
      
      * disabled concurrency tests
      fixed kill() issue
      
      * disabled concurrency tests
      fixed kill() issue
      
      * cleanup vendor related code
      
      * cleanup ptrace calls
      
      * vendoring latest changes
      
      * Revert "vendoring latest changes"
      
      This reverts commit 833cb87b
      
      * vendoring latest changes
      
      * requested changes
      df65be43
    • Q
      terminal: Add breakpoint autocompletion (#183) (#1612) · 114b76ae
      qingyunha 提交于
      114b76ae
  4. 09 7月, 2019 3 次提交
  5. 03 7月, 2019 1 次提交
    • A
      terminal: adds embedded scripting language (#1466) · ed35dce7
      Alessandro Arzilli 提交于
      If the argument of 'source' ends in '.star' it will be interpreted as a
      starlark script.
      If the argument of 'source' is '-' an interactive starlark repl will be
      started.
      
      For documentation on how the starlark execution environment works see
      Documentation/cli/starlark.md.
      
      The starlark API is autogenerated from the JSON-RPC API by
      script/gen-starlark-bindings.go.
      In general for each JSON-RPC API a single global starlark function is
      created.
      When one of those functions is called (through a starlark script) the
      arguments are converted to go structs using reflection. See
      unmarshalStarlarkValue in pkg/terminal/starbind/conv.go.
      If there are no type conversion errors the JSON-RPC call is executed.
      The return value of the JSON-RPC call is converted back into a starlark
      value by interfaceToStarlarkValue (same file):
      
      * primitive types (such as integers, floats or strings) are converted
        by creating the corresponding starlark value.
      * compound types (such as structs and slices) are converted by wrapping
        their reflect.Value object into a type that implements the relevant
        starlark interfaces.
      * api.Variables are treated specially so that their Value field can be
        of the proper type instead of always being a string.
      
      Implements #1415, #1443
      ed35dce7
  6. 02 7月, 2019 1 次提交
  7. 01 7月, 2019 2 次提交
    • A
      proc: allow simultaneous call injection to multiple goroutines (#1591) · dd4fd5dc
      Alessandro Arzilli 提交于
      * proc: allow simultaneous call injection to multiple goroutines
      
      Changes the call injection code so that we can have multiple call
      injections going on at the same time as long as they happen on distinct
      goroutines.
      
      * proc: fix EvalExpressionWithCalls for constant expressions
      
      The lack of address of constant expressions would confuse EvalExpressionWithCalls
      
      Fixes #1577
      dd4fd5dc
    • A
      Go 1.13 support (#1546) · 55eed318
      Alessandro Arzilli 提交于
      * tests: fix tests for Go 1.13
      
      - Go 1.13 doesn't autogenerate init functions anymore, tests that
        expected that now fail and should be skipped.
      - Plugin tests now need -gcflags'all=-N -l' now, we were probably
        getting lucky with -gcflags='-N -l' before.
      
      * proc: allow signed integers as shift counts
      
      Go1.13 allows signed integers to be used as the right hand side of a
      shift operator, change eval to match.
      
      * goversion: update maximum supported version
      
      * travis: force Go to use vendor directory
      
      Travis scripts get confused by "go: downloading" lines, the exact
      reason is not clear. Testing that the vendor directory is up to date is
      a good idea anyway.
      55eed318
  8. 31 5月, 2019 1 次提交
  9. 09 5月, 2019 1 次提交
    • A
      proc: support debugging plugins (#1414) · f3b149bd
      Alessandro Arzilli 提交于
      This change splits the BinaryInfo object into a slice of Image objects
      containing information about the base executable and each loaded shared
      library (note: go plugins are shared libraries).
      
      Delve backens are supposed to call BinaryInfo.AddImage whenever they
      detect that a new shared library has been loaded.
      
      Member fields of BinaryInfo that are used to speed up access to dwarf
      (Functions, packageVars, consts, etc...) remain part of BinaryInfo and
      are updated to reference the correct image object. This simplifies this
      change.
      
      This approach has a few shortcomings:
      
      1. Multiple shared libraries can define functions or globals with the
         same name and we have no way to disambiguate between them.
      
      2. We don't have a way to handle library unloading.
      
      Both of those affect C shared libraries much more than they affect go
      plugins. Go plugins can't be unloaded at all and a lot of name
      collisions are prevented by import paths.
      
      There's only one problem that is concerning: if two plugins both import
      the same package they will end up with multiple definition for the same
      function.
      For example if two plugins use fmt.Printf the final in-memory image
      (and therefore our BinaryInfo object) will end up with two copies of
      fmt.Printf at different memory addresses. If a user types
        break fmt.Printf
      a breakpoint should be created at *both* locations.
      Allowing this is a relatively complex change that should be done in a
      different PR than this.
      
      For this reason I consider this approach an acceptable and sustainable
      stopgap.
      
      Updates #865
      f3b149bd
  10. 28 3月, 2019 1 次提交
  11. 21 3月, 2019 1 次提交
  12. 27 2月, 2019 1 次提交
  13. 05 1月, 2019 2 次提交
  14. 04 12月, 2018 1 次提交
  15. 28 11月, 2018 1 次提交
  16. 20 11月, 2018 1 次提交
    • S
      proc/proc: Extend GoroutinesInfo to allow specifying a range · 11accd4d
      Sergio Lopez 提交于
      Instead of unconditionally returning all present goroutines,
      GoroutinesInfo now allows specifying a range (start and count). In
      addition to the array of goroutines and the error, it now also returns
      the next goroutine to be processed, to be used as 'start' argument on
      the next call, or 0 if all present goroutines have already been
      processed.
      
      This way clients can avoid eating large amounts of RAM while debugging
      core dumps and processes with a exceptionally high amount of goroutines.
      
      Fixes #1403
      11accd4d
  17. 20 10月, 2018 1 次提交
    • D
      *: Show return values on CLI trace · 3129aa73
      Derek Parker 提交于
      This patch allows the `trace` CLI subcommand to display return values of
      a function. Additionally, it will also display information on where the
      function exited, which could also be helpful in determining the path
      taken during function execution.
      
      Fixes #388
      3129aa73
  18. 18 10月, 2018 1 次提交
  19. 16 10月, 2018 2 次提交
  20. 12 10月, 2018 1 次提交
    • A
      proc: support position independent executables (PIE) · 74c98bc9
      aarzilli 提交于
      Support for position independent executables (PIE) on the native linux
      backend, the gdbserver backend on linux and the core backend.
      Also implemented in the windows native backend, but it can't be tested
      because go doesn't support PIE on windows yet.
      74c98bc9
  21. 11 10月, 2018 1 次提交
  22. 03 10月, 2018 1 次提交
    • A
      proc/native,Makefile: allow compiling on macOS without native backend · 910f90c3
      aarzilli 提交于
      On macOS 10.14 Apple changed the command line tools so that system
      headers now need to be manually installed.
      
      Instead of adding one extra install step to the install procedure add a
      build tag to allow compilation of delve without the native backend on
      macOS. By default (i.e. when using `go get`) this is how delve will be
      compiled on macOS, the make script is changed to enable compiling the
      native backend if the required dependencies have been installed.
      
      Insure that both configuration still build correctly on Travis CI and
      change the documentation to describe how to compile the native backend
      and that it isn't normally needed.
      
      Fixes #1359
      910f90c3
  23. 26 9月, 2018 2 次提交
  24. 25 9月, 2018 2 次提交
  25. 20 9月, 2018 1 次提交
  26. 01 9月, 2018 1 次提交
  27. 31 8月, 2018 1 次提交
    • A
      proc,service,terminal: information about stack trace truncation · ac74944d
      aarzilli 提交于
      Add a flag to Stackframe that indicates where the stack frame is the
      bottom-most frame of the stack. This allows clients to know whether the
      stack trace terminated normally or if it was truncated because the
      maximum depth was reached.
      Add a truncation message to the 'stack' command.
      ac74944d
  28. 17 8月, 2018 1 次提交
  29. 01 8月, 2018 1 次提交
    • B
      Add an edit command · 22af3836
      Ben Cotterell 提交于
      Which I miss from gdb-- it's nice to be able to open where you are in
      your editor where you're already working on the project you're
      debugging.
      22af3836
  30. 25 7月, 2018 1 次提交
    • A
      proc,service,terminal: read defer list · 8f1fc63d
      aarzilli 提交于
      Adds -defer flag to the stack command that decorates the stack traces
      by associating each stack frame with its deferred calls.
      
      Reworks proc.next to use this feature instead of using proc.DeferPC,
      laying the groundwork to implement #1240.
      8f1fc63d
  31. 24 7月, 2018 1 次提交
    • A
      terminal: disable next/step/stepout if current frame isn't 0 · 932aad9e
      aarzilli 提交于
      next/step/stepout should work even if the current frame isn't the
      topmost stack frame, but their behavior should be different in that
      case (they should continue inside the function of the selected frame).
      
      Most of the logic of next/step/stepout would work correctly if we
      simply replaced the call to proc.topframe with something that took a
      frame index. However the breakpoint they set on the first deferred
      function is wrong, and fixing it requires scanning the defer stack and
      matching it to the call stack, something we can't do yet.
      
      Given that enhancing next/step/stepout will take time and the current
      behavior confuses users (see issue #1240) return an error if
      next/step/stepout are called while the currently selected frame isn't
      frame 0.
      
      Updates #1240
      932aad9e
  32. 14 7月, 2018 1 次提交