1. 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
  2. 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
  3. 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
  4. 22 6月, 2018 1 次提交
    • D
      *: Use structured logging · a208c897
      Derek Parker 提交于
      Implements structured logging via Logrus. This gives us a logger per
      boundry that we care about, allowing for easier parsing of logs if users
      have more than one log option enabled. Also, cleans up a lot of
      conditionals in the code by simply silencing the logger at creation as
      opposed to conditionally logging everywhere.
      a208c897
  5. 20 6月, 2018 1 次提交
    • A
      proc,command: fix optimized function warning in 1.9 · e19cbcef
      aarzilli 提交于
      A user complained on the mailing list about having continuous
      "optimized function warnings" on non-optimized functions when using 1.9.
      This commit fixes the problem by disabling optimized function detection
      on 1.9 and earlier (where it's impossible) and adds a test so we don't
      break it again in the future.
      e19cbcef
  6. 12 6月, 2018 1 次提交
    • A
      proc,service: display return values when stepping out of a function · 60c58acb
      aarzilli 提交于
      Displays the return values of the current function when we step out of
      it after executing a step, next or stepout command.
      
      Implementation of this feature is tricky: when the function has
      returned the return variables are not in scope anymore. Implementing
      this feature requires evaluating variables that are out of scope, using
      a stack frame that doesn't exist anymore.
      
      We can't calculate the address of these variables when the
      next/step/stepout command is initiated either, because between that
      point and the time where the stepout breakpoint is actually hit the
      goroutine stack could grow and be moved to a different memory address.
      60c58acb
  7. 09 6月, 2018 1 次提交
  8. 14 4月, 2018 1 次提交
    • A
      terminal: make printcontext use SelectedGoroutine · 4f70ff0a
      aarzilli 提交于
      printcontext should use SelectedGoroutine instead of trusting that the
      goroutine running on current thread matches the SelectedGoroutine.
      
      When the user switches to a parked goroutine CurrentThread and
      SelectedGoroutine will diverge.
      
      Almost all calls to printcontext are safe, they happen after a continue
      command returns when SelectedGoroutine and CurrentThread always agree,
      but the calls in frameCommand and listCommand are wrong.
      
      Additionally we should stop reporting an error when the debugger is
      stopped on an unknown PC address.
      4f70ff0a
  9. 23 3月, 2018 1 次提交
    • Y
      Extend the "frame" command to set the current frame. (#1110) · 82aff3f1
      Yasushi Saito 提交于
      * Extend the "frame" command to set the current frame.
      
      Command
      
        frame 3
      
      sets up so that subsequent "print", "set", "whatis" command
      will operate on frame 3.
      
        frame 3 print foo
      
      continues to work.
      
      Added "up", "down". They move the current frame up or down.
      
      Implementation note:
      
      This changes removes "scopePrefix" mode from the terminal/command.go and instead
      have the command examine the goroutine/frame value to see if it is invoked in a
      scoped context.
      
      * Rename Command.Frame -> Command.frame.
      82aff3f1
  10. 20 3月, 2018 1 次提交
  11. 28 1月, 2018 1 次提交
  12. 19 1月, 2018 1 次提交
    • Y
      command/terminal: allow restart to change process args (#1060) · c5c41f63
      Yasushi Saito 提交于
      * command/terminal: allow restart to change process args
      
      Add -args flag to "restart" command. For example, "restart -args a b c" will
      pass args a b c to the new process.
      
      Add "-c" flag to pass the checkpoint name. This is needed to disambiguate the
      checkpoint name and arglist.
      
      Reverted unnecessary changes.
      
      * Applied reviewer comments.
      
      Vendored argv.
      
      Change the syntax of restart. When the target is is in recording mode, it always
      interprets the args as a checkpoint. Otherwise, it interprets the args as
      commandline args. The flag "-args" is still there, to handle the case in which
      the user wants to pass an empty args on restart.
      
      * Add restartargs.go.
      
      Change "restart -args" to "restart -noargs" to clarify that this flag is used to
      start a process with an empty arg.
      c5c41f63
  13. 19 12月, 2017 1 次提交
    • A
      debugger/locations: locspec "+0" should always evaluate to the current PC · 3f2335f2
      aarzilli 提交于
      So far we have evaluated the locspec "+0" the same way we evaluate all
      "+n" locspecs, this means that we turn the current PC into a file:line
      pair, then we turn back the file:line into a PC address.
      
      Normally this is harmless, however all autogenerated code returns the
      source position "<autogenerated>:1" which resolves back to the very
      first autogenerated instruction in the code.
      
      This messes up the behaviour of the "disassemble" command which uses
      the locspec "+0" to figure out what code to disassemble if no arguments
      are passed.
      
      We should make +0 always resolve to the current PC (of the given scope)
      so that clients can use +0 as a default locspec.
      3f2335f2
  14. 29 11月, 2017 1 次提交
  15. 09 9月, 2017 1 次提交
  16. 31 8月, 2017 1 次提交
  17. 02 8月, 2017 1 次提交
  18. 27 7月, 2017 2 次提交
  19. 30 6月, 2017 1 次提交
  20. 21 6月, 2017 1 次提交
    • A
      api: add FrameOffset to Stackframe (#864) · 04c4b019
      Alessandro Arzilli 提交于
      Other debuggers can be instructed to decorate the stacktrace with the
      value of SP. Our SP equivalent is the frame offset, since we can add it
      to the Stackframe structure without incurring into added costs we
      should, so that frontends can use it if they want.
      04c4b019
  21. 09 5月, 2017 1 次提交
  22. 06 5月, 2017 1 次提交
  23. 20 4月, 2017 2 次提交
  24. 19 4月, 2017 1 次提交
  25. 23 2月, 2017 2 次提交
    • A
      terminal/command_test: improved TestIssue387 · 1a4b5a05
      aarzilli 提交于
      The test in question tries to 'next' over a call to wg.Done, this is
      not guaranteed to succeed, if the goroutine gets suspended after
      wg.Done has notified the waiting group but before returning to
      main.dostuff the program could quit before the goroutine is resumed.
      1a4b5a05
    • 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
  26. 09 2月, 2017 1 次提交
  27. 25 9月, 2016 1 次提交
  28. 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
  29. 30 4月, 2016 1 次提交
    • A
      docs: Documentation for command line frontend (#518) · 82ece547
      Alessandro Arzilli 提交于
      * documentation: copied old documentation from wiki
      
      * command: better online documentation
      
      Help without arguments prints just a short summary for each command,
      help followed by a command prints the command's syntax and a longer
      explanation.
      
      * documentation: automatically generate Documentation/cli/README.md
      82ece547
  30. 25 4月, 2016 2 次提交
    • 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: Improvements to Variable printing (#444) · 473b6638
      Alessandro Arzilli 提交于
      * service/api: Removed unused fields of service/api.Function
      
      * proc/eval: Set return variable name to input expression
      
      * all: fine-grained control of loadValue for better variable printing
      
      Makes proc.(*Variable).loadValue loading parameters configurable
      through one extra argument of type LoadConfig.
      This interface is also exposed through the API so clients can control
      how much of a variable delve should read.
      473b6638
  31. 19 4月, 2016 1 次提交
  32. 07 4月, 2016 1 次提交
    • W
      terminal: show message if there are no vars/locals/args · e60942a3
      Wesley Merkel 提交于
      When the vars, locals, or args commands return no results, nothing is
      
      printed out to the terminal. This commit makes these commands print a
      
      message like `(no locals)` when there is nothing to show. This feedback
      
      is more descriptive of what is being returned than an empty string.
      e60942a3
  33. 29 2月, 2016 1 次提交
  34. 28 2月, 2016 2 次提交
  35. 25 2月, 2016 1 次提交