PINTOS 中的 exec-missing 需要做什么检查

What check to make in exec-missing in PINTOS

我正在从事 Pintos 项目 # 2。我已经实现了大部分系统调用。在 exec 系统调用中,有一个测试 exec-missing 根据文件中的注释检查:

    /* 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”第一个参数的可执行文件是从 start_process() 函数中存在的 load() 函数加载的。

提醒您,start_process() 是 运行 作为新创建进程的一部分的函数。该函数负责将可执行文件加载到内存中并开始执行。

如果没有找到可执行文件,那么load()函数会通过returning 0报错。在此之后,您需要释放为进程分配的所有内存,并通过调用 exit() 系统调用或调用 process_exit() 函数来结束它。

您可以从调试 load() 函数的 return 状态开始。