我正在为intel x86架构编写VMM。大多数代码包含x86平台特定的汇编和c代码。有人可以帮助我如何调试汇编代码,请包括硬件数据结构。如何调试x86汇编
1
A
回答
1
如果此VMM应该在Windows主机上运行,则应该能够使用Visual Studio调试程序集。
如果你的问题是你不熟悉VMCS,GDT,LDT,IDT,TSS等必要的硬件结构,那么我建议你花点时间熟悉IA32,尤其是Software Developer's Guide 。这是一个长时间的阅读与许多细节,但我没有看到你如何编写一个没有它的VMM。
+1
其实问题是调试x86指令。目前我正在做的是检查eax,ebx,ecx等指令并打印出来。有没有更好的方法来调试呢? – brett 2010-09-27 16:41:16
+0
在哪方面更好?你没有调试器可以调试你的代码或什么? – 2012-03-20 19:14:10
1
使用GDB进行调试适用于x86,如果需要,可以使用-tui开关打开TUI,如果它使事情变得更简单。
我找到关于此主题的文档是相当繁琐的进行搜索,所以这里是快速和肮脏的,让你开始:
run start program execution
break function-name set breakpoint at function-name
clear function-name clear breakpoint at function-name
continue continue execution after breakpoint
si next instruction, enter functions
ni next instruction, doesn’t enter functions
disassemble function-name display function’s code
info registers display values in registers
display variable-name show value of variable-name on breakpoint
print variable-name show value of variable-name
p $register or the value of register
p/x, p/d, p/c, p/f … as hex, signed int, char, float
x address examine memory at address
x &variable-name examine value of variable-name
相关问题
- 1. 汇编x86测试si
- 2. x86汇编错误
- 3. x86汇编语言
- 4. x86-64 GNU汇编
- 5. .NET - NGEN编译x86汇编
- 6. 如何在汇编x86中用ml汇编多个文件?
- 7. 如何反汇编原始x86代码?
- 8. 如何调试汇编程序?
- 9. intel x86汇编到C
- 10. x86汇编分段错误
- 11. 汇编语言x86 Irvine32
- 12. x86汇编参考手册
- 13. 困惑在x86汇编
- 14. x86汇编学习平台
- 15. x86 intel操作码汇编
- 16. x86汇编程序问题
- 17. x86或x64反汇编LIB
- 18. 由x86汇编语法
- 19. 汇编X86语言问题
- 20. x86汇编转换基数
- 21. 解密x86汇编函数
- 22. x86汇编替代阵列
- 23. 调试反汇编代码
- 24. NASM汇编调试器
- 25. 调试x86与只调试
- 26. 如何调用汇编
- 27. 尝试重新使用寄存器x86汇编时发生Segfault
- 28. x86汇编寄存器地址
- 29. 关于图形的x86汇编练习
- 30. 汇编语言的x86欧文
有你遇到的任何具体问题? – 2010-09-27 07:29:41
@Nathan Fellman另外我的VMM运行在裸机上,并且运行在Linux操作系统上。 – brett 2010-09-27 18:38:39