ref: 2a5861c59427e9e2e943bf70e0cd655bde9f9d39
parent: 7dc1d531cfb71f5513e2541d47c40e7e15e06fc3
author: cinap_lenrek <cinap_lenrek@felloff.net>
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);
--
⑨