{"record":{"id":"894f7a0188ba3ae4","repo":"go-delve/delve","slug":"filter-not-supported-on-breakpoint","errorCode":null,"errorMessage":"filter not supported on breakpoint","messagePattern":"filter not supported on breakpoint","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/terminal/command.go","lineNumber":2353,"sourceCode":"\treturn t.printSortedStrings(t.client.ListTypes(args))\n}\n\nfunc parseVarArguments(args string, t *Term) (filter string, cfg api.LoadConfig) {\n\tif v := config.Split2PartsBySpace(args); len(v) >= 1 && v[0] == \"-v\" {\n\t\tif len(v) == 2 {\n\t\t\treturn v[1], t.loadConfig()\n\t\t} else {\n\t\t\treturn \"\", t.loadConfig()\n\t\t}\n\t}\n\treturn args, ShortLoadConfig\n}\n\nfunc args(t *Term, ctx callContext, args string) error {\n\tfilter, cfg := parseVarArguments(args, t)\n\tif ctx.Prefix == onPrefix {\n\t\tif filter != \"\" {\n\t\t\treturn errors.New(\"filter not supported on breakpoint\")\n\t\t}\n\t\tctx.Breakpoint.LoadArgs = &cfg\n\t\treturn nil\n\t}\n\tvars, err := t.client.ListFunctionArgs(ctx.Scope, cfg)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn t.printFilteredVariables(\"args\", vars, filter, cfg)\n}\n\nfunc locals(t *Term, ctx callContext, args string) error {\n\tfilter, cfg := parseVarArguments(args, t)\n\tif ctx.Prefix == onPrefix {\n\t\tif filter != \"\" {\n\t\t\treturn errors.New(\"filter not supported on breakpoint\")\n\t\t}\n\t\tctx.Breakpoint.LoadLocals = &cfg","sourceCodeStart":2335,"sourceCodeEnd":2371,"githubUrl":"https://github.com/go-delve/delve/blob/a23773e6c31361e43246bc43a424ee009679b174/pkg/terminal/command.go#L2335-L2371","documentation":"When the 'args' command is used inside an 'on <bp>' breakpoint context, it only records a load configuration on the breakpoint; per-variable name filtering (the -r regex option parsed by parseVarArguments) is not supported in that mode, so Delve returns this error when a non-empty filter is detected.","triggerScenarios":"Running 'on <bp> args -r <pattern>' (any filter flag parsed by parseVarArguments yielding filter != \"\") with ctx.Prefix == onPrefix in args() (pkg/terminal/command.go).","commonSituations":"Users copying their usual 'args -r foo.*' invocation into an 'on' block without realizing filters only apply to live listing, not breakpoint-configured argument loading.","solutions":["Drop the filter flag: 'on <bp> args' optionally with other load-config flags.","Apply the regex filter when you run args normally at a stopped point instead.","Use 'on <bp> print <expr>' for per-expression output at breakpoint hits."],"exampleFix":"// before\n(dlv) on 1 args -r user.*\n// after\n(dlv) on 1 args","handlingStrategy":"validation","validationCode":"// before recording breakpoint commands in 'on' context\nfunc validateOnArgsCmd(ctxPrefix, args string) error {\n    if ctxPrefix == \"on\" && strings.Contains(args, \"-r\") {\n        return errors.New(\"filter (-r) not allowed with 'on <bp> args'\")\n    }\n    return nil\n}","typeGuard":null,"tryCatchPattern":"if err := cmd.Args(term, ctx, args); err != nil {\n    if err.Error() == \"filter not supported on breakpoint\" {\n        // retry without the filter flag\n        return cmd.Args(term, ctx, stripFilterFlags(args))\n    }\n    return err\n}","preventionTips":["Do not use -r/filter flags in 'on <bp>' blocks","Apply regex filtering only to interactive 'args' at a stop point","Use 'on <bp> print <expr>' for selective output at hits"],"tags":["terminal","cli-usage","breakpoint"],"backgroundTag":"unsupported-option-combination","analyzedSha":"a23773e6c31361e43246bc43a424ee009679b174","analyzedAt":"2026-08-31T15:12:45.221Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}