- 21 3月, 2020 2 次提交
-
-
由 Alessandro Arzilli 提交于
When switching to the goroutine stack the stack iterator registers might not have any entry for the BP register, make sure to add it instead of just trying to change it.
-
由 Alessandro Arzilli 提交于
Instead of rescanning debug_info every time we want to read a function (either to find inlined calls or its variables) cache the tree of dwarf.Entry that we would generate and use that. Benchmark before: BenchmarkConditionalBreakpoints-4 1 5164689165 ns/op Benchmark after: BenchmarkConditionalBreakpoints-4 1 4817425836 ns/op Updates #1549
-
- 20 3月, 2020 10 次提交
-
-
由 Derek Parker 提交于
-
由 Derek Parker 提交于
-
由 Derek Parker 提交于
-
由 Derek Parker 提交于
-
由 Derek Parker 提交于
-
由 Alessandro Arzilli 提交于
Add logging for Issue #1927. The bug happens during the call to api.ConvertThread, returning an error will not suffice since ConvertThread will not surface it. Updates #1927
-
由 Alessandro Arzilli 提交于
Inserts a call to ClearAllGCache into stepInstructionOut so that cached goroutine state is not inconsistent after an injected function call.\ Fixes #1925
-
由 Alessandro Arzilli 提交于
Implements #1256
-
由 Alessandro Arzilli 提交于
Autogenerates .travis.yml configuration using the contents of pkg/goversion/compat.go. Also: - excludes testing of windows/amd64/tip and linux/arm64/tip (Travis-CI can't get Go at tip for those combinations). - Removes Go 1.11 from pkg/goversion/compat.go which we don't test anymore.
-
由 Sourya Vatsyayan 提交于
-
- 19 3月, 2020 3 次提交
-
-
由 Derek Parker 提交于
-
由 chainhelen 提交于
If we call one expression which is the fake method of meanless string, `delve` will panic. Strengthen the inspection of boundary conditions when supporting function calls on non-struct types. Update: #1871
-
由 Derek Parker 提交于
* *: Fix go vet struct complaints * *: Fix struct vet issue on linux * *: Ignore proc/native in go vet check We have to do some unsafe pointer manipulation that will never make go vet happy within the proc/native package. Ignore it for runs of go vet.
-
- 18 3月, 2020 1 次提交
-
-
由 Derek Parker 提交于
-
- 17 3月, 2020 2 次提交
-
-
由 MinJae Kwon 提交于
-
由 chainhelen 提交于
-
- 15 3月, 2020 1 次提交
-
-
由 Alessandro Arzilli 提交于
-
- 13 3月, 2020 1 次提交
-
-
由 Derek Parker 提交于
* *: Remove appveyor, use travis windows support * cmd/dlv: Update TestOutput for Travis on Windows * cmd/dlv: Skip TestGeneratedDoc in Travis on Windows * Reduce number of jobs in matrix We only really want to test the full arch/go matrix on Linux. For every other os/arch/go combination, only run Go tip and the latest supported version.
-
- 12 3月, 2020 2 次提交
-
-
由 Alessandro Arzilli 提交于
* proc: move defer breakpoint code into a function Moves the code that sets a breakpoint on the first deferred function, used by both next and StepOut, to its function. * proc: implement reverse step/next/stepout When the direction of execution is reversed (on a recording) Step, Next and StepOut will behave similarly to their forward version. However there are some subtle interactions between their behavior, prologue skipping, deferred calls and normal calls. Specifically: - when stepping backwards we need to set a breakpoint on the first instruction after each CALL instruction, once this breakpoint is reached we need to execute a single StepInstruction operation to reverse step into the CALL. - to insure that the prologue is skipped reverse next needs to check if it is on the first instruction after the prologue, and if it is behave like reverse stepout. - there is no reason to set breakpoints on deferred calls when reverse nexting or reverse stepping out, they will never be hit. - reverse step out should generally place its breakpoint on the CALL instruction that created the current stack frame (which will be the CALL instruction immediately preceding the instruction at the return address). - reverse step out needs to treat panic calls and deferreturn calls specially. * service,terminal: implement reverse step, next, stepout
-
由 chainhelen 提交于
Update: #1879
-
- 11 3月, 2020 4 次提交
-
-
由 Alessandro Arzilli 提交于
Benchmark before: BenchmarkConditionalBreakpoints-4 1 7031242832 ns/op Benchmark after: BenchmarkConditionalBreakpoints-4 1 5282482841 ns/op Conditional breakpoint evaluation latency: 0.70ms -> 0.52ms Updates #1549
-
由 polinasok 提交于
* Add support for threads request * Address review comments * Relax threads test condition * Address review comments * Clean up unnecessary newline * Respond to review comment Co-authored-by: NPolina Sokolova <polinasok@users.noreply.github.com>
-
由 Alessandro Arzilli 提交于
* proc,proc/*: move SelectedGoroutine to proc.Target, remove PostInitializationSetup moves SelectedGoroutine, SwitchThread and SwitchGoroutine to proc.Target, merges PostInitializationSetup with NewTarget. * proc,proc/*: add StopReason field to Target Adds a StopReason field to the Target object describing why the target process is currently stopped. This will be useful for the DAP server (which needs to report this reason in one of its requests) as well as making pull request #1785 (reverse step) conformant to the new architecture. * proc: collect NewTarget arguments into a struct
-
由 chainhelen 提交于
Implement debugging function for 386 on linux with reference to AMD64. There are a few remaining problems that need to be solved in another time. 1. The stacktrace of cgo are not exactly as expected. 2. Not implement `core` for now. 3. Not implement `call` for now. Can't not find `runtime·debugCallV1` or similar function in $GOROOT/src/runtime/asm_386.s. Update #20
-
- 10 3月, 2020 3 次提交
-
-
由 Alessandro Arzilli 提交于
* proc/native/linux: only set breakpoints on threads that receive SIGTRAP * proc/native/linux: do not call (*Thread).Stopped inside (*Process).stop (*Thread).Stopped is slow because it needs to open, read and parse a file in /proc, we don't actually need to do that, we can just rely on the value of Thread.os.running. Benchmark before: BenchmarkConditionalBreakpoints-4 1 12476166303 ns/op Benchmark after: BenchmarkConditionalBreakpoints-4 1 10403533675 ns/op Conditional breakpoint evaluation: 1.24ms -> 1ms Updates #1549
-
由 polinasok 提交于
* logflags: Add pid to server-listening-at message * Address review comments: use logger Co-authored-by: NPolina Sokolova <polinasok@users.noreply.github.com>
-
由 aarzilli 提交于
There are too many commands, for clarity they should be divided into categories when printing and generating documentation.
-
- 06 3月, 2020 1 次提交
-
-
由 Derek Parker 提交于
-
- 05 3月, 2020 1 次提交
-
-
由 polinasok 提交于
* service/dap: Add support for debug and test modes * Address code review comments * Remove //dap comment * OptFlags() => optfalgs() * If mode => switch mode
-
- 04 3月, 2020 1 次提交
-
-
由 aarzilli 提交于
-
- 03 3月, 2020 1 次提交
-
-
由 a 提交于
Disables async preemption on macOS Fixes #1905
-
- 01 3月, 2020 3 次提交
-
-
由 Derek Parker 提交于
Use strings.Builder and tabwriter to format the output of the examine memory command instead of doing direct string manipulation and allocating.
-
由 Derek Parker 提交于
This also removes Go 1.11 from the test matrix. Now that 1.14 has been released, as always it should be included in the test matrix.
-
由 Josh Stone 提交于
This change adds `ProcessVmRead` and `ProcessVmWrite` wrappers around the syscalls `process_vm_readv` and `process_vm_writev`, available since Linux 3.2. These follow the same permission model as `ptrace`, but they don't actually require being attached, which means they can be called directly from any thread in the debugger. They also use `iovec` to write entire blocks at once, rather than having to peek/poke each `uintptr`. These wrappers are used in `Thread.ReadMemory` and `WriteMemory`, still falling back to `ptrace` if that fails for any reason. Notably, `process_vm_writev` respects memory protection, so it can't modify read-only memory like `ptrace`. This frequently occurs when writing breakpoints in read-only `.text`, so to avoid a lot of wasted `EFAULT` calls, we only try `process_vm_writev` for larger writes.
-
- 29 2月, 2020 2 次提交
-
-
由 chainhelen 提交于
-
由 polinasok 提交于
-
- 27 2月, 2020 2 次提交
-
-
由 chainhelen 提交于
1. Don't use intelligent '#' in fmt of go because it is not always satisfying for diffrent version of golang. Always keep one leading zero for octal and one leading '0x' for hex manually. Then keep alignment for every byte. 2. Always keep addr alignment when the lens of two adjacent address are different. Update #1814.
-
由 Eli Bendersky 提交于
Using a stop channel to signal clean shutdown to the server's goroutines. Also updates the tests to trigger disconnectChan. This helps avoid spurious error logs when the client disconnects, when Ctrl+C is pressed, etc.
-