- 11 2月, 2016 2 次提交
-
-
由 aarzilli 提交于
1. A running goroutine is by definition not parked waiting for a chan recv 2. The FDE end address is intended to be exclusive, the code interpreted as inclusive and sometimes ended up setting a breakpoint on a function other than the current one.
-
由 aarzilli 提交于
Past the maximum recursion depth maps shouldn't be loaded at all, adding map children and not loading them breaks assumptions in the prettyprinter. Fixes #406
-
- 01 2月, 2016 1 次提交
-
-
由 aarzilli 提交于
Fixes #384
-
- 25 1月, 2016 2 次提交
-
-
由 aarzilli 提交于
Typedefs that resolve to slices are not recorded in DWARF as typedefs but instead as structs in a way that there is no way to know they are really slices using debug/dwarf. Using golang.org/x/debug/dwarf instead this problem is solved and as a bonus some types are printed with a nicer names: (struct string → string, struct []int → []int, etc) Fixes #356 and #293
-
由 Derek Parker 提交于
Instead of doing a bunch of manual DWARF / memory parsing we instead can just dogfood the internal Variable API to retrieve the G struct.
-
- 24 1月, 2016 1 次提交
-
-
由 aarzilli 提交于
-
- 18 1月, 2016 1 次提交
-
-
由 aarzilli 提交于
Location specifiers starting with '*' can be followed by any expression supported by the evaluator. The expression should evaluate to either an integer (which will be interpreted as an address) or to a function pointer (which will be dereferenced to get the function's entry point).
-
- 16 1月, 2016 1 次提交
-
-
由 aarzilli 提交于
Temp breakpoints should be cleared even if a non-temp breakpoint is triggered on the same goroutine that the temp breakpoints are set on. Fixes #305
-
- 10 1月, 2016 4 次提交
-
-
由 aarzilli 提交于
Prefetch the entire memory of structs and arrays and cache it instead of issuing readMemory calls only when we get down to primitive types. This reduces the number of system calls to ptrace that variables makes. Improves performance in general, greatly improving it in some particular cases (involving large structs). Benchmarks without prefetching: BenchmarkArray-4 10 132189944 ns/op 0.06 MB/s BenchmarkArrayPointer-4 5 202538503 ns/op 0.04 MB/s BenchmarkMap-4 500 3804336 ns/op 0.27 MB/s BenchmarkGoroutinesInfo-4 10 126397104 ns/op BenchmarkLocalVariables-4 500 2494846 ns/op Benchmarks with prefetching: BenchmarkArray-4 200 10719087 ns/op 0.76 MB/s BenchmarkArrayPointer-4 100 11931326 ns/op 0.73 MB/s BenchmarkMap-4 1000 1466479 ns/op 0.70 MB/s BenchmarkGoroutinesInfo-4 10 103407004 ns/op BenchmarkLocalVariables-4 1000 1530395 ns/op Improvement factors: BenchmarkArray 12.33x BenchmarkArrayPointer 16.97x BenchmarkMap 2.59x BenchmarkGoroutinesInfo 1.22x BenchmarkLocalVariables 1.63x
-
由 aarzilli 提交于
-
由 Derek Parker 提交于
-
由 aarzilli 提交于
Fixes #341
-
- 19 12月, 2015 1 次提交
-
-
由 aarzilli 提交于
recurseLevel value should not be reset when evaluating the contents of an interface variable Fixes #316
-
- 16 12月, 2015 5 次提交
-
-
由 aarzilli 提交于
The concrete type of an interface only contains the abbreviated package name, we must construct a map from package names to package paths to be able to resolve the concrete type of an interface.
-
由 aarzilli 提交于
It's was implemented unintentionally and the unintentional implementation doesn't work and causes a crash.
-
由 aarzilli 提交于
-
由 aarzilli 提交于
-
由 aarzilli 提交于
-
- 07 11月, 2015 4 次提交
- 04 11月, 2015 1 次提交
-
-
由 aarzilli 提交于
Supported operators: - All (binary and unary) operators between basic types except <-, ++ and -- (includes & to take the address of an expression) - Comparison operators between supported compound types - Typecast of integer constants into pointer types - struct members - indexing of arrays, slices and strings - slicing of arrays, slices and strings - pointer dereferencing - true, false and nil constants Implements #116, #117 and #251
-
- 29 10月, 2015 2 次提交
- 19 10月, 2015 2 次提交
-
-
由 Derek Parker 提交于
-
由 aarzilli 提交于
Three locations are returned for goroutines: its current location, its current location excluding unexported runtime functions and the location of its go instruction. The command 'goroutines' takes a new parameter to select which location to print (defaulting to current location w/o runtime)
-
- 07 10月, 2015 3 次提交
-
-
由 Derek Parker 提交于
-
由 Luke Hoban 提交于
-
由 Luke Hoban 提交于
Embedded structs are encoded in DWARF as fields with package-qualified names. They define an anonymous field on the struct with the non-qualified name, as well as promoted fields for each field of the embedded struct so long as these are not shadowed by fields of the containing struct. Fixes #220.
-
- 02 10月, 2015 1 次提交
-
-
由 aarzilli 提交于
g.SP refers to the frame the goroutine was in the last time it was scheduled out. Instead of calling proc.(*Process).stacktrace directly we should call proc.(*Process).GoroutineStacktrace that substitutes fresh values retrieved from thread registers when necessary. This bug leads to occasional problems with `next`.
-
- 30 9月, 2015 1 次提交
-
-
由 Luke Hoban 提交于
Fixes #220
-
- 29 9月, 2015 3 次提交
-
-
由 Derek Parker 提交于
-
由 aarzilli 提交于
set <variable name> <value>
-
由 Derek Parker 提交于
-
- 28 9月, 2015 1 次提交
-
-
由 aarzilli 提交于
Refactored variables.go to separate calculation of a variable's address from reading its value. This change is useful to implement the 'set' command as well as the evaluation of more complex expressions (in the future).
-
- 20 9月, 2015 1 次提交
-
-
由 aarzilli 提交于
Be more tolerant of unitialized memory, limit length of strings like we do for array/slices. Workaround for Issue #189
-
- 18 9月, 2015 2 次提交
-
-
由 aarzilli 提交于
stack command: -full flag prints local variables and arguments of all the functions on the stack trace
-
由 Ilia Choly 提交于
Some of the goroutines stored in runtime.allg are in the dead state and should not be displayed. The state is determined by the 'g.atomicstatus' member.
-
- 17 9月, 2015 1 次提交
-
-
由 Derek Parker 提交于
gopc is the instruction of the `go` command that spawned this goroutine. What we really want (unless we can get the PC from the thread) is the value of sched.pc which is the value of the PC at the time it was parked.
-