The problem to read the pauth registers is reproducible with a simple C program:
#define _GNU_SOURCE #include <elf.h> #include <stdio.h> #include <stdlib.h> #include <sys/ptrace.h> #include <sys/uio.h> #include <sys/wait.h> #include <unistd.h> #define LEN 16384 int main() { long ret; struct iovec iovec; pid_t pid; pid = fork(); if (!pid) { sleep(1); return 0; } ret = ptrace(PTRACE_ATTACH, pid, NULL, NULL); if (ret == -1) { perror("PTRACE_ATTACH failed"); return 1; } iovec.iov_base = malloc(LEN); iovec.iov_len = LEN; wait(NULL); // ret = ptrace (PTRACE_GETREGSET, pid, NT_PRSTATUS, &iovec); ret = ptrace (PTRACE_GETREGSET, pid, NT_ARM_PAC_MASK, &iovec); if (ret == -1) { perror("PTRACE_GETREGSET"); return 1; } printf("PTRACE_GETREGSET succeeded\n"); return 0; } -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to gdb in Ubuntu. https://bugs.launchpad.net/bugs/2012509 Title: unable to fetch pauth registers: Invalid argument. Status in gdb package in Ubuntu: New Bug description: I am running Ubuntu Lunar on an arm64 Lenovo X13s using the kernel 6.2.0-1003-laptop from ppa:ubuntu-concept/x13s. The kernel is configured with CONFIG_ARM64_PTR_AUTH=y. Debugging a trivial hello world program fails: GNU gdb (Ubuntu 13.1-2ubuntu2) 13.1 Reading symbols from ./test... (gdb) r Starting program: /home/user/temp/test unable to fetch pauth registers: Invalid argument. The message relates to this statement: gdb/aarch64-linux-nat.c:371: ret = ptrace (PTRACE_GETREGSET, tid, NT_ARM_PAC_MASK, &iovec); When using set tdesc filename target.xml with a target.xml file without the org.gnu.gdb.aarch64.pauth feature debugging works fine. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/2012509/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp