Casting pid to ::pid_t when invoking syscall.

Summary:
syscalls involving pid/tid on 32 bit binaries are failing with
"Invalid argument" because the uint64_t arguments are too wide.

Reviewers: clayborg, ovyalov, sivachandra

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D7963

llvm-svn: 230817
This commit is contained in:
Chaoren Lin 2015-02-28 00:20:16 +00:00
parent cd187f033e
commit c934659736
2 changed files with 4 additions and 2 deletions

View File

@ -123,7 +123,8 @@
// Try to define a macro to encapsulate the tgkill syscall
// fall back on kill() if tgkill isn't available
#define tgkill(pid, tid, sig) syscall(SYS_tgkill, pid, tid, sig)
#define tgkill(pid, tid, sig) \
syscall(SYS_tgkill, static_cast<::pid_t>(pid), static_cast<::pid_t>(tid), sig)
// We disable the tracing of ptrace calls for integration builds to
// avoid the additional indirection and checks.

View File

@ -88,7 +88,8 @@
// Try to define a macro to encapsulate the tgkill syscall
// fall back on kill() if tgkill isn't available
#define tgkill(pid, tid, sig) syscall(SYS_tgkill, pid, tid, sig)
#define tgkill(pid, tid, sig) \
syscall(SYS_tgkill, static_cast<::pid_t>(pid), static_cast<::pid_t>(tid), sig)
using namespace lldb_private;