首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gdb调试xv6用户程序时无法访问内存

使用gdb调试xv6用户程序时无法访问内存
EN

Stack Overflow用户
提问于 2021-07-23 23:03:23
回答 1查看 109关注 0票数 0

我目前正在自学2020麻省理工学院6.S081:操作系统工程https://pdos.csail.mit.edu/6.828/2020/schedule.html。我已经按照MAC OS的所有步骤正确设置了环境。当我同时启动gdb和qemu时,我能够在调试内核可执行文件时正常地断点。

但是,当我尝试对用户可执行文件执行相同的操作时,我无法中断任何点,出现错误:

代码语言:javascript
复制
Cannot access memory at address 0x...

原来我可以为某些特定的行设置断点,但是当我点击continue时,在上面的屏幕截图中显示了另一个错误。

有什么办法解决这个问题吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-09-21 14:19:19

你可以查看你的gdb是否警告你不能使用文件.gdbinit启动gdb?如果没有,您可以简单地向.gdbinit:set riscv use-compressed-breakpoints yes添加一行,如下所示:

代码语言:javascript
复制
set confirm off
set architecture riscv:rv64
target remote 127.0.0.1:26000
symbol-file kernel/kernel
set disassemble-next-line auto
set riscv use-compressed-breakpoints yes

然后使用riscv64-unknown-elf-gdb启动gdb.You将会看到它工作良好。但是如果您收到警告,那么您应该使用riscv64-unknown-elf-gdb -iex 'add-auto-load-safe-path .'来另外启动gdb。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68501265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档