【发布时间】:2011-04-04 02:24:01
【问题描述】:
我正在尝试做一项家庭作业,涉及修改 minix 中的一些内核代码,但遇到了我见过的最奇怪的问题。
我正在修改 pm 服务器上的 alloc.c(对于那些熟悉 minix 的人),并且我在文件顶部添加了一个全局变量:
PUBLIC int logging = 0;
然后我试图在我添加到内核的一个函数中读取变量:
PUBLIC int do_setalloc(void)
{
printf("logging = %i\n", logging");
return (OK);
}
然后我有一个在内核空间之外运行此代码的测试程序:
int main(void)
{
message m;
m.m1_i1 = 1;
m.m1_i2 = 1;
_syscall(MM,69,&m);
return 0;
}
这是这段代码运行时的输出:
logging = %i
Printf 实际上并没有用整数的实际值替换 %i 格式,我在这里扯掉了我的头发,这个任务很快就要到期了!救命!
【问题讨论】:
-
+1 用于发现丑陋的 Minix 错误。 :-)