delve/pkg/proc
Alessandro Arzilli d97b471292
pkg/proc,service/debugger: do not disable unsatisfiable breakpoints (#3868)
Previously breakpoints with hitcount conditions that became
unsatisfiable
would become disabled, this was done as an optimization so that the
continue loop would no longer need to stop on them and evaluate their
conditions.
As a side effect this meant that on restart these breakpoints would
remain disabled, even though their hit condition returned satisfiable.

This commit changes Delve behavior so that breakpoints with
unsatisifiable hitcount conditions are no longer disabled but the
associated physical breakpoints are removed anyway, preserving the
optimization.

Some refactoring is done to the way conditions are represented and the
enable status is managed so that in the future it will be possible to
use hitcount conditions to implement "chained" breakpoints (also known
as dependet breakpoints), i.e. breakpoints that become active only
after a second breakpoint has been hit.
2024-12-04 19:07:56 -08:00
..
amd64util pkg/proc/native,pkg/proc/amd64util: xsave decoding cleanup (#3840) 2024-11-21 13:06:51 +01:00
core proc/core/minidump: remove newlines from minidump logs (#3869) 2024-11-26 11:44:46 -08:00
debuginfod debuginfod-find stderr may contain diagnostics; look at stdout only for filename (#3381) 2023-05-23 11:11:51 -07:00
evalop proc: fix typos in errors and comments (#3852) 2024-11-06 15:15:48 +01:00
fbsdutil pkg/proc: fix and improve freebsd register handling (#3019) 2022-05-31 16:04:36 -07:00
gdbserial tests: calling os.Exit in TestMain is not required (#3856) 2024-11-12 08:03:50 -08:00
internal/ebpf *: Correct spelling mistakes (#3555) 2023-11-06 07:55:44 -06:00
linutil delve: add linux-riscv64 support (#3785) 2024-10-11 12:34:25 -07:00
macutil all: remove obsolete build tags "// +build" (#3513) 2023-10-03 08:50:11 -07:00
native proc: fix issue on Windows when launching process while detached (#3867) 2024-11-26 11:45:46 -08:00
test tests: calling os.Exit in TestMain is not required (#3856) 2024-11-12 08:03:50 -08:00
winutil pkg,service: remove unnecessary convertions (#3564) 2023-11-14 16:36:55 +01:00
amd64_arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
amd64_disasm.go pkg/proc: apply simplifycompositelit analysis fixes (#3236) 2023-01-03 08:13:28 -08:00
arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
arm64_arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
arm64_disasm.go pkg,service: remove unnecessary convertions (#3564) 2023-11-14 16:36:55 +01:00
bininfo.go service,terminal,cmd/dlv: automatically guessing substitute-path config (#3781) 2024-10-31 10:19:08 -07:00
breakpoints.go pkg/proc,service/debugger: do not disable unsatisfiable breakpoints (#3868) 2024-12-04 19:07:56 -08:00
disasm.go pkg,service: remove unnecessary convertions (#3564) 2023-11-14 16:36:55 +01:00
doc.go *: run go1.19 'go fmt' on everything and fix problems (#3031) 2022-06-17 10:08:11 -07:00
dump.go delve: add linux-riscv64 support (#3785) 2024-10-11 12:34:25 -07:00
dwarf_export_test.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
dwarf_expr_test.go *: remove redundant lines at the start/end of block (#3730) 2024-05-20 14:16:22 -07:00
eval.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
fncall.go proc: do not ignore error return of funcCallEvalFuncExpr (#3850) 2024-11-06 10:27:44 -08:00
goroutine_cache.go pkg/proc: enable basic debug functionality for stripped ELF binaries (#3408) 2023-06-14 13:23:46 +02:00
i386_arch.go proc: fix stacktraces on freebsd/amd64/go1.20 (#3458) 2023-08-14 15:32:15 -07:00
i386_disasm.go dwarf,proc: fix typos in comments and error messages (#3379) 2023-05-23 18:22:20 +02:00
interface.go proc/gdbserver: clean up rr directory on detach (#3570) 2024-01-24 09:21:20 -08:00
mem.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
moduledata.go refactor: move loadModuleData from runtimeTypeToDIE and expose the apis (#3741) 2024-06-25 08:03:28 -07:00
pclntab.go *: replace fmt.Errorf with errors.New (#3752) 2024-06-20 21:50:18 +02:00
pe.go delve: add linux-riscv64 support (#3785) 2024-10-11 12:34:25 -07:00
ppc64le_arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
ppc64le_disasm.go *: update dependencies (#3552) 2023-11-04 17:07:55 +01:00
proc_amd64_test.go pkg/terminal,pkg/proc: Implement next-instruction (#3671) 2024-02-28 09:28:33 +01:00
proc_darwin_amd64_test.go pkg/terminal,pkg/proc: Implement next-instruction (#3671) 2024-02-28 09:28:33 +01:00
proc_darwin_test.go pkg/proc: unskip passing tests and reorganize (#3561) 2023-11-12 12:01:21 +01:00
proc_general_test.go proc: fix typos in errors and comments (#3852) 2024-11-06 15:15:48 +01:00
proc_linux_test.go TeamCity: speed up ppc64le CI (#3622) 2024-01-09 14:13:00 -08:00
proc_test.go pkg/proc,service/debugger: do not disable unsatisfiable breakpoints (#3868) 2024-12-04 19:07:56 -08:00
proc_unexported_test.go proc: correctly truncate the result of binary ops on integers (#2463) 2021-05-17 10:31:05 -07:00
proc_unix_test.go all: remove obsolete build tags "// +build" (#3513) 2023-10-03 08:50:11 -07:00
redirect.go pkg/proc,service/*: Supports sending output to clients when running programs remotely (#3253) 2023-07-05 08:39:01 -07:00
redirector_other.go all: remove obsolete build tags "// +build" (#3513) 2023-10-03 08:50:11 -07:00
redirector_windows.go pkg,service: Remove redundant build constraints (#3556) 2023-11-06 16:22:50 +01:00
registers.go proc: support function call injection on arm64 (#2996) 2022-05-03 10:46:24 -07:00
riscv64_arch.go *: mark riscv64 port as experimental (#3835) 2024-10-14 11:04:03 -07:00
riscv64_disasm.go *: mark riscv64 port as experimental (#3835) 2024-10-14 11:04:03 -07:00
scope_test.go pkg/proc: simplify tests by using errors.As (#3818) 2024-10-01 08:54:11 -07:00
stack_sigtramp.go proc: initial support for expressions with range-over-func (#3750) 2024-06-24 13:04:06 -07:00
stack.go proc: fix rangeFuncStackTrace with inlined functions (#3849) 2024-11-04 08:21:40 -08:00
stackwatch.go proc: fix bug with stack watchpoints going out of scope (#3742) 2024-06-12 12:37:04 -07:00
stepping_test.go proc: step into coroutine (#3791) 2024-09-24 10:22:04 -07:00
target_exec.go pkg/proc,service/debugger: do not disable unsatisfiable breakpoints (#3868) 2024-12-04 19:07:56 -08:00
target_group.go pkg/proc,service/debugger: do not disable unsatisfiable breakpoints (#3868) 2024-12-04 19:07:56 -08:00
target.go proc: cache module data (#3800) 2024-09-18 14:17:07 -07:00
threads.go proc: move StepInstruction method to TargetGroup (#3488) 2023-09-20 09:17:45 +02:00
types.go proc: fix typos in errors and comments (#3852) 2024-11-06 15:15:48 +01:00
variable_test.go *: remove redundant lines at the start/end of block (#3730) 2024-05-20 14:16:22 -07:00
variables_fuzz_test.go proc: use stack machine to evaluate expressions (#3508) 2023-10-17 11:21:59 -07:00
variables_test.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
variables.go proc: allow accessing captured variable as if they were struct fields (#3866) 2024-12-02 11:20:51 -08:00
x86_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00