1. 19 4月, 2017 5 次提交
  2. 14 4月, 2017 1 次提交
  3. 07 4月, 2017 1 次提交
    • A
      proc refactor: split out BinaryInfo implementation (#745) · 436a3c21
      Alessandro Arzilli 提交于
      * proc: refactor BinaryInfo part of proc.Process to own type
      
      The data structures and associated code used by proc.Process
      to implement target.BinaryInfo will also be useful to support a
      backend for examining core dumps, split this part of proc.Process
      to a different type.
      
      * proc: compile support for all executable formats unconditionally
      
      So far we only compiled in support for loading the executable format
      supported by the host operating system.
      Once support for core files is introduced it is however useful to
      support loading in all executable formats, there is no reason why it
      shouldn't be possible to examine a linux coredump on windows, or
      viceversa.
      
      * proc: bugfix: do not resume threads on detach if killing
      
      * Replace BinaryInfo interface with BinInfo() method returning proc.BinaryInfo
      436a3c21
  4. 23 2月, 2017 1 次提交
    • A
      proc/stack: use BP when FDE is not available · 92faa95b
      aarzilli 提交于
      On Windows we can sometimes encounter threads stopped in locations for
      which we do not have entries in debug_frame.
      These cases seem to be due to calls to Windows API in the go runtime,
      we can still produce a (partial) stack trace in this circumstance by
      following frame pointers (starting with BP).
      We still prefer debug_frame entries when available since go functions
      do not have frame pointers before go1.8.
      92faa95b
  5. 10 2月, 2017 1 次提交
  6. 09 2月, 2017 2 次提交
  7. 08 2月, 2017 3 次提交
    • A
      Improve stacktraces (#721) · e77595ce
      Alessandro Arzilli 提交于
      * service/rpccommon: fixed typo
      
      * proc: test parseG while target is in runtime.deferreturn
      
      runtime.deferreturn will change the value of curg._defer.fn in such a
      way that if the target is stopped at just the right instruction it
      may crash an incorrect implementation of parseG
      
      * proc/stack: handle stack barriers correctly
      
      Correctly handle stack barriers insterted during garbage collection.
      e77595ce
    • A
      proc: Make sure CurrentLoc of G returned by GetG is up to date (#723) · 8c96e275
      Alessandro Arzilli 提交于
      We are already doing this in GoroutinesInfo we should be doing it for
      GetG. The main consequence of not doing this is that the CurrentLoc of
      DebuggerState.SelectedGoroutine is out of date compared to the location
      of the thread running it.
      8c96e275
    • A
      Go 1.8 compatibility (part 2) (#667) · 8724b3fc
      Alessandro Arzilli 提交于
      * dwarf/line: bugfix: not all values of the state machine can be used
      
      According to DWARF Version 3 Section 6.2 "Line Number Information" not
      all the values transversed by the line numbers state machine are valid
      instructions, only the ones after a "special opcode", after the
      standard opcode DW_LNS_copy and the extended opcode
      DW_LINE_end_sequence.
      
      DWARF3 describes this by specifying that only the opcodes listed above
      "append a row to the matrix".
      
      Additionally the implementation of DW_LNS_const_add_pc was wrong.
      
      Fixes #664
      
      * dwarf/line: fixed test failing with go1.8
      
      * service/test: fix prologue detection tests
      
      The conditions about which function prologue is emitted by the compiler
      changed in go1.8, changed the test program so that callme2 will still
      have a prologue under go1.8.
      
      * service/test: fix step test
      
      compilation units are linked in a different order under go1.8 so the
      code of 'fmt' is no longer located after 'main' in the executable,
      changed the tests so that they don't rely on this assumption anymore.
      
      * proc: change runtime.Breakpoint support for go1.8
      
      Before 1.8 it was sufficient to step twice to exit a
      runtime.Breakpoint(), but go 1.8 added frame pointer tracking to small
      functions making runtime.Breakpoint longer.
      This changes runtime.Breakpoint handling in Continue to single step as
      many times as are needed to exit runtime.Breakpoint.
      
      * proc/test: fix TestIssue561 for go1.8
      8724b3fc
  8. 21 1月, 2017 1 次提交
  9. 10 1月, 2017 2 次提交
  10. 06 1月, 2017 1 次提交
  11. 23 12月, 2016 1 次提交
  12. 20 12月, 2016 1 次提交
  13. 02 11月, 2016 1 次提交
    • E
      Flag to set working directory (#650) · 4064d6ac
      Evgeny L 提交于
      * proc: Add `wd` to Launch
      
      This change adds the `wd` arg which specify working directory of the
      program.
      
      Fixes #295
      
      * service/debugger: Add `Wd` field to debugger.Config
      
      This change adds the `Wd` field which specify working directory of the
      program launched by debugger.
      
      Fixes #295
      
      * service: Add `Wd` to service.Config
      
      This change adds the `Wd` field which specify working directory of the
      program debugger will launch.
      
      Fixes #295
      
      * cmd/dlv: Add `Wd` flag
      
      This change adds `Wd` flag which specify working directory of the
      program which launched by debugger.
      
      Fixes #295
      
      * only set the Linux working directory if it is set,
      stub out param in darwin and windows
      
      * set working directory for Windows
      https://godoc.org/golang.org/x/sys/windows#CreateProcess
      https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
      
      * Windows workingDir must be an *uint16
      
      * attempt to chdir on darwin via @yuntan
      
      * proc/exec_darwin.c: fix working directory for darwin
      
      * Add tests to check if working directory works.
      * Fix darwin implementation of fork/exec, which paniced if
        child fork returned.
      
      * cmd, service: rename Wd to WorkingDir
      4064d6ac
  14. 27 10月, 2016 1 次提交
    • A
      proc: Names of concrete types of interfaces parsing their runtime._type · f62bf8d1
      aarzilli 提交于
      Generate names of the concrete types stored inside interface variables
      by fully parsing their runtime._type instead of simply using the str
      field.
      
      This allows delve to read the contents of an interface variable when
      the program imports multiple packages that have the same name. It also
      allows delve to correctly interpret some complex anonymous types.
      
      Fixes #455
      f62bf8d1
  15. 23 10月, 2016 1 次提交
  16. 22 10月, 2016 2 次提交
  17. 30 9月, 2016 1 次提交
  18. 27 9月, 2016 1 次提交
    • A
      proc: Implement Step using Continue · 7c49d496
      aarzilli 提交于
      Instead of repeatedly calling StepInstruction set breakpoints to the
      destination of CALL instructions (or on the CALL instructions
      themselves for indirect CALLs), then call Continue.
      Calls to unexported runtime functions are skipped.
      Reduces the number of code paths managing inferior state from 3 to 2
      (StepInstruction, Continue).
      
      Fixes #561
      7c49d496
  19. 07 9月, 2016 1 次提交
  20. 06 7月, 2016 2 次提交
  21. 02 7月, 2016 1 次提交
    • A
      Replaced net/rpc with custom version · 80336e57
      aarzilli 提交于
      This version preserves the order of requests, allows the
      client to switch between API versions and introduces a
      way to send notifications to the client (see TODO item at:
      proc/proc_linux.go:325).
      
      Fixes #523, #571
      80336e57
  22. 30 6月, 2016 1 次提交
    • A
      proc: detect when Launching non-executable files · 51c39ed1
      aarzilli 提交于
      This provides a better error message when the user tries to run dlv
      debug on a directory that does not contain a main package, when `dlv
      exec` is used with a source file.
      
      Additionally the architecture of the executable is checked as suggested
      by @alexbrainman in #443.
      
      Fixes #509
      51c39ed1
  23. 22 6月, 2016 1 次提交
  24. 21 6月, 2016 1 次提交
  25. 30 5月, 2016 2 次提交
    • D
      all: Fix typos · 0fded288
      Derek Parker 提交于
      0fded288
    • A
      Go 1.7 compatibility (#524) · 9bc6ad4f
      Alessandro Arzilli 提交于
      * tests: update to cope with go1.7 SSA compiler
      
      * de-vendored golang.org/x/debug/dwarf
      
      We need our own tweaked version
      
      * dwarf/debug/dwarf: always use the entry's name attribute
      
      Using the name attribute leads to better type names as well as fixes
      inconsistencies between 1.5, 1.6 and 1.7.
      
      * proc: Updated loadInterface to work with go1.7
      
      go1.7 changed the internal representation of types, removing the string
      field from runtime._type.
      Updated loadInterface to use the new str field.
      9bc6ad4f
  26. 18 5月, 2016 1 次提交
  27. 25 4月, 2016 3 次提交
    • A
      terminal,service: auto-continue during next and step (#448) · c4e01da5
      Alessandro Arzilli 提交于
      * proc: bugfix: StepInto can not function when temp bps exist
      
      * terminal,service: auto-continue during next and step
      
      Make dlv call continue automatically when a breakpoint is hit on a
      different goroutine during a next or step operation.
      Added API hooks to implement the other solution to this problem (cancel
      the next/step operation if a different breakpoint is hit).
      
      Fixes #387
      c4e01da5
    • A
      proc: allow use of quoted type names in type casts (#434) · a7a0cc75
      Alessandro Arzilli 提交于
      If we are unable to correctly guess how a type is serialized in
      debug_info let the user specify it directly.
      
      Workaround for #455
      a7a0cc75
    • A
      service: Make Halt work during tracing (#469) · 7820921b
      Alessandro Arzilli 提交于
      While tracing delve may spend most of its time outside of
      proc.(*Process).Continue, which renders
      service/rpc/client.(*Client).Halt ineffective.
      This commit changes the implementation of
      service/rpc/client.(*Client).Halt to make it capable of stopping traces.
      7820921b