【发布时间】:2020-12-25 01:32:36
【问题描述】:
有没有办法在 Mac 上通过 lldb 或其他方式查看系统调用指令调用的代码?
我试图了解调用“写入”系统调用时的幕后情况。我用gcc -g编译了一个简单的.c程序:
#include <unistd.h>
#include <sys/syscall.h>
int main(void) {
syscall(SYS_write, 1, "hello, world!\n", 14);
return 0;
}
即使我使用以下命令,lldb 也不会进入 syscall 指令:
s -a false
有什么办法吗?
【问题讨论】:
-
你不能 lldb 从用户模式进入内核。但也许看一眼opensource.apple.com/source/xnu/xnu-4903.221.2/osfmk/x86_64/… 可以激发你的好奇心。