我正在进行Pintos项目#2。我已经实现了大部分系统调用。在exec系统调用中,有一个测试exec丢失,根据文件中的注释检查如下:
/* Tries to execute a nonexistent process.
The exec system call must return -1. */
#include <syscall.h>
#include "tests/lib.h"
#include "tests/main.h"
void
test_main (void)
{
msg ("exec("no-such-file"): %d", exec ("no-such-file"));
}
我不知道如何在我的exec代码中检查这一点。我已经正确地检查了框架指针,可能缺少什么?
指定为"exec
"第一个参数的可执行文件是从start_process()
函数中的load()
函数加载的。
提醒您,start_process()
是作为新创建的流程的一部分运行的函数。此功能负责将可执行文件加载到内存中并开始执行
如果未找到可执行文件,则load()
函数将通过返回0
来报告错误。在此之后,您需要解除分配给进程的所有内存,并通过调用exit()
系统调用或调用process_exit()
函数来结束它。
您可以从调试load()
函数的返回状态开始。