[Lldb-commits] [lldb] lldb: Linux: restore __ptrace_request typedef for bionic+musl (PR #219237)

Nick Desaulniers via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 27 12:52:48 PDT 2026


nickdesaulniers wrote:

[Bionic](https://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:external/llvm-libc/src/sys/ptrace/ptrace.h;l=21) declares `ptrace` as:

```c++
long ptrace(int request, ...);
```

[musl](https://git.musl-libc.org/cgit/musl/tree/include/sys/ptrace.h#n142) declares `ptrace` as:

```c++
long ptrace(int, ...);
```

glibc declares `ptrace` as:

```c++
extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
```
(unable to link to their sources, their server appears to be having trouble).

The issue is in C++, does not allow implicit conversion from an integer to an enum (unlike C).  Removing the static_cast then calling glibc's declaration triggers:

clang:
```
error: no matching function for call to 'ptrace'
note: candidate function not viable: no known conversion from 'int' to 'enum __ptrace_request' for 1st argument
```
gcc:
```
error: invalid conversion from 'int' to '__ptrace_request' [-fpermissive]
```

At the least, I'll keep the change as is, but add a comment and update the commit & pr descriptions.

https://github.com/llvm/llvm-project/pull/219237


More information about the lldb-commits mailing list