[Lldb-commits] [PATCH] D147805: [lldb-vscode] Fix two issues with runInTerminal test.
Jordan Rupprecht via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Apr 7 18:43:27 PDT 2023
rupprecht added a reviewer: rupprecht.
rupprecht added a comment.
The `pid` plumbing looks fine for the happy case, but I think we could be more lenient if (for whatever reason) the pid flag isn't being set on non-Linux systems that won't actually be using it. Even on a Linux system, this is only needed if ptrace_scope != 0, so if the `pid` isn't being provided there, we could just skip the `prctl` call and hope the user's system has a value of 0 for that.
(Also, 0 is a weird value, we should probably just reject that)
================
Comment at: lldb/tools/lldb-vscode/JSONUtils.cpp:1120
debug_adaptor_path.str(), "--comm-file", comm_file.str(),
+ "--debugger-pid", std::to_string(debugger_pid),
"--launch-target", GetString(launch_request_arguments, "program").str()};
----------------
Only pass this if != 0
(or get fancy and use a std::optional or whatever)
================
Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:1569
+ unsigned long debugger_pid = 0;
+#if !defined(_WIN32)
----------------
unsigned long -> lldb::pid_t
================
Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:3163
+#if defined(__linux__)
+ (void)prctl(PR_SET_PTRACER, debugger_pid, 0, 0, 0);
+#endif
----------------
Only invoke this if debugger_pid != 0
================
Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:3261
+ char *remainder;
+ unsigned long pid = strtoul(debugger_pid->getValue(), &remainder, 0);
+ if (remainder == debugger_pid->getValue() || *remainder != '\0') {
----------------
`StringRef` is usually used for parsing strings as numbers, something like:
```
unsigned long pid = 0;
llvm::StringRef debugger_pid_value = debugger_pid->getValue())
if (debugger_pid_value.getAsInteger(10, pid)) {
llvm::errs() << ...
}
}
```
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147805/new/
https://reviews.llvm.org/D147805
More information about the lldb-commits
mailing list