在PINTOS中执行缺失的检查

时间:2015-12-10 15:41:13

标签: operating-system pintos

我正在研究Pintos Project#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代码中检查这个。我正确检查了帧指针,可能缺少什么?

1 个答案:

答案 0 :(得分:1)

指定为&#34; exec&#34;的第一个参数的可执行文件;是从load()函数中的start_process()函数加载的。

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

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

您可以先调试load()函数的返回状态。