1. 14 2月, 2020 1 次提交
    • C
      pkg,service: add cmd `examinemem`(`x`) for examining memory. (#1814) · a5d9dbee
      chainhelen 提交于
      According to #1800 #1584 #1038, `dlv` should enable the user to dive into
      memory. User can print binary data in specific memory address range.
      But not support for sepecific variable name or structures temporarily.(Because
      I have no idea that modify `print` command.)
      
      Close #1584.
      a5d9dbee
  2. 13 2月, 2020 1 次提交
  3. 11 2月, 2020 1 次提交
    • A
      *: Go 1.14 support branch (#1727) · 0741d3e5
      Alessandro Arzilli 提交于
      * tests: misc test fixes for go1.14
      
      - math.go is now ambiguous due to changes to the go runtime so specify
        that we mean our own math.go in _fixtures
      - go list -m requires vendor-mode to be disabled so pass '-mod=' to it
        in case user has GOFLAGS=-mod=vendor
      - update version of go/packages, required to work with go 1.14 (and
        executed go mod vendor)
      - Increased goroutine migration in one development version of Go 1.14
        revealed a problem with TestCheckpoints in command_test.go and
        rr_test.go. The tests were always wrong because Restart(checkpoint)
        doesn't change the current thread but we can't assume that when the
        checkpoint was taken the current goroutine was running on the same
        thread.
      
      * goversion: update maximum supported version
      
      * Makefile: disable testing lldb-server backend on linux with Go 1.14
      
      There seems to be some incompatibility with lldb-server version 6.0.0
      on linux and Go 1.14.
      
      * proc/gdbserial: better handling of signals
      
      - if multiple signals are received simultaneously propagate all of them to the
        target threads instead of only one.
      - debugserver will drop an interrupt request if a target thread simultaneously
        receives a signal, handle this situation.
      
      * dwarf/line: normalize backslashes for windows executables
      
      Starting with Go 1.14 the compiler sometimes emits backslashes as well
      as forward slashes in debug_line, normalize everything to / for
      conformity with the behavior of previous versions.
      
      * proc/native: partial support for Windows async preempt mechanism
      
      See https://github.com/golang/go/issues/36494 for a description of why
      full support for 1.14 under windows is problematic.
      
      * proc/native: disable Go 1.14 async preemption on Windows
      
      See https://github.com/golang/go/issues/36494
      0741d3e5
  4. 22 1月, 2020 1 次提交
  5. 21 1月, 2020 1 次提交
  6. 10 1月, 2020 1 次提交
    • A
      proc,service: return build informations for each package · a8606afb
      aarzilli 提交于
      Adds an API call that returns a list of packages contained in the
      program and the files that were used to build them, and also a best
      guess at which filesystem directory contained the package when it was
      built.
      
      This can be used by IDEs to map file paths if the debugging environment
      doesn't match the build environment exactly.
      a8606afb
  7. 03 1月, 2020 1 次提交
  8. 03 12月, 2019 1 次提交
    • D
      pkg/terminal: Fix exit status · c119e40c
      Derek Parker 提交于
      During a debug session if the process exited and then the user quit the
      debug session, the process exit message would display again and Delve
      would exit non-zero (specifically with exit code 1) despite nothing
      going wrong.
      
      This patch fixes this so that Delve exits with a clean 0 status and the
      process exit message is not printed yet again.
      c119e40c
  9. 28 11月, 2019 3 次提交
  10. 05 11月, 2019 1 次提交
  11. 26 10月, 2019 1 次提交
  12. 22 10月, 2019 2 次提交
  13. 08 10月, 2019 1 次提交
  14. 26 9月, 2019 1 次提交
  15. 01 8月, 2019 1 次提交
  16. 30 7月, 2019 2 次提交
    • D
      *: Add .cirrus.yml for FreeBSD testing (#1639) · f4eaad69
      Derek Parker 提交于
      * *: Add .cirrus.yml for FreeBSD testing
      
      * *: run go mod tidy
      
      * service/test: prefer 127.0.0.1 over localhost
      
      * dwarf/line: fix TestDebugLinePrologueParser
      
      * vendor: rerun go mod vendor
      f4eaad69
    • J
      terminal/command: add support for next [count] (#1629) · 1a478cdb
      Jeremy Faller 提交于
      * terminal/command: add support for next [count]
      
      * disallow negative counts.
      
      * handle github comments, and regen docs.
      
      * Fix the fact that we don't print the file info in the last step of the next count.
      
      * Fix a typo, cleanup a few other observations.
      1a478cdb
  17. 24 7月, 2019 1 次提交
  18. 18 7月, 2019 1 次提交
  19. 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
  20. 09 7月, 2019 3 次提交
  21. 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
  22. 02 7月, 2019 1 次提交
  23. 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
  24. 31 5月, 2019 1 次提交
  25. 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
  26. 28 3月, 2019 1 次提交
  27. 21 3月, 2019 1 次提交
  28. 27 2月, 2019 1 次提交
  29. 05 1月, 2019 2 次提交
  30. 04 12月, 2018 1 次提交
  31. 28 11月, 2018 1 次提交