ref: d035ef2419f965e3a49e54ca9b706e4a5f14d827
parent: 02b0b4dfb5a5bcc8971d5c15b2e9761b3fb59508
author: cinap_lenrek <[email protected]>
date: Sat Jul 8 06:40:09 EDT 2023
libmach: open /proc/n/kfpregs when kernel debugging
--- a/sys/src/libmach/map.c
+++ b/sys/src/libmach/map.c
@@ -80,7 +80,7 @@
Map*
attachproc(int pid, int kflag, int corefd, Fhdr *fp)
{
- char buf[64], *regs;
+ char buf[64], *regs, *fpregs;
int fd;
Map *map;
uvlong n;
@@ -91,9 +91,11 @@
return 0;
if(kflag) {
regs = "kregs";
+ fpregs = "kfpregs";
mode = OREAD;
} else {
regs = "regs";
+ fpregs = "fpregs";
mode = ORDWR;
}
if (mach->regsize) {
@@ -106,7 +108,7 @@
setmap(map, fd, 0, mach->regsize, 0, "regs");
}
if (mach->fpregsize) {
- sprint(buf, "/proc/%d/fpregs", pid);
+ sprint(buf, "/proc/%d/%s", pid, fpregs);
fd = open(buf, mode);
if(fd < 0)
fd = open("/dev/zero", OREAD);