编译 project1(threads)
cd src/threads/
make
运行 run test
在 project1 ,我们只能运行 run test 检查点程序,为了确认 pintOS threads 已经编译成功,我们可以运行 alarm-single 检查点程序。检查点程序位于 /src/tests/threads 中,用来测试 project1 的 threads 是否符合要求。(此时最简 pintOS 已经有了一个简单的 Round Robin 循环调度器)
alram-single 是一个闹钟程序,具体让一个进程睡眠指定的时间然后醒来。
1 | thread_create (name, PRI_DEFAULT, sleeper, t); |
编译
cd src/threads/build
pintOS –gdb –qemu – -q run alarm-single ( 指定 -q 时,test 结束后会关机)
此时控制台显示 gdb 已经在运行
→ qemu-system-i386 -device isa-debug-exit -drive file=/tmp/l4r95zoeuQ.dsk,format=raw,index=0,media=disk -m 4 -net none -nographic -gdb tcp::1234 -S
使用 vscode 进行调试
在 vscode 中直接 F5 启动,设置 gdb 如下 (需要安装 C/C++ 插件)
1 | { |
设置好之后,重新 F5 启动,设置断点在 sleep 中,观察运行情况,更多详见 pintOS 原文档