- 01 4月, 2020 2 次提交
-
-
由 aarzilli 提交于
Avoids constructing: 1. name of runtime.curg fields while executing parseG 2. the location expression while evaluating any variable. Benchmark before: BenchmarkConditionalBreakpoints-4 1 4953889884 ns/op Benchmark after: BenchmarkConditionalBreakpoints-4 1 4419775128 ns/op Updates #1549
-
由 aarzilli 提交于
Under some circumstances (methods with non-pointer receivers or from embedded fields called through an interface) the compiler will autogenerate wrapper functions. This commit changes next, step and stepout to skip all autogenerated wrappers. Fixes #1908
-
- 31 3月, 2020 1 次提交
-
-
由 Alessandro Arzilli 提交于
Replace the interface type Arch with a struct with the same functionality.
-
- 29 3月, 2020 2 次提交
-
-
由 Derek Parker 提交于
Instead of selectively excluding this directory, hide it from the go tooling by applying the "_" prefix.
-
由 Derek Parker 提交于
-
- 28 3月, 2020 1 次提交
-
-
由 Derek Parker 提交于
Also cleanup some typos.
-
- 27 3月, 2020 1 次提交
-
-
由 Alessandro Arzilli 提交于
Remove gitignore rule preventing vendor/modules.txt file from being commited, add check that the vendor directory is synchronized.
-
- 26 3月, 2020 2 次提交
-
-
由 Derek Parker 提交于
-
由 Derek Parker 提交于
-
- 25 3月, 2020 1 次提交
-
-
由 Alessandro Arzilli 提交于
Allows Delve clients to stop a recording midway by sending a Command('halt') request. This is implemented by changing debugger.New to start recording the process on a separate goroutine while holding the processMutex locked. By locking the processMutex we ensure that almost all RPC requests will block until the recording is done, since we can not respond correctly to any of them. API calls that do not require manipulating or examining the target process, such as "IsMulticlient", "SetApiVersion" and "GetState(nowait=true)" will work while we are recording the process. Two other internal changes are made to the API: both GetState and Restart become asynchronous requests, like Command. Restart because this way it can be interrupted by a StopRecording request if the rerecord option is passed. GetState because clients need a call that will block until the recording is compelted and can also be interrupted with a StopRecording. Clients that are uninterested in allowing the user to stop a recording can ignore this change, since eventually they will make a request to Delve that will block until the recording is completed. Clients that wish to support this feature must: 1. call GetState(nowait=false) after connecting to Delve, before any call that would need to manipulate the target process 2. allow the user to send a StopRecording request during the initial GetState call 3. allow the user to send a StopRecording request during any subsequent Restart(rerecord=true) request (if supported). Implements #1747
-
- 24 3月, 2020 2 次提交
-
-
由 Derek Parker 提交于
Reset the timer once we start executing the code paths we actually care to measure, since the setup and continue steps can be relatively expensive. Also, disable recording on benchmarks. This seems less useful, and also cuts out a lot of noise when benchmarks are run.
-
由 Derek Parker 提交于
This patch moves out unrelated types, variables and functions from proc.go into a place where they make more sense.
-
- 23 3月, 2020 2 次提交
-
-
由 Derek Parker 提交于
-
由 Derek Parker 提交于
This makes it so that CI will still work on forks, if necessary.
-
- 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
-