我有一个嵌入式项目,运行在68332处理器目标(68k系列)上。目标上没有操作系统。我们有一个自定义模拟器,允许我们的代码在Windows中执行。模拟器完全没有我们的控制来修改。基本上,模拟器正在执行机器代码,当您需要调试时,这些代码不是很好。我真正想做的是连接调试器,以允许我们在源级而不是在机器/汇编级调试。有没有人做过这样的事情?是否有调试器支持的规范?也许像gdb这样的东西会起作用吗?任何建议都表示赞赏。
答案 0 :(得分:0)
这不一定是您的问题的答案 - 我不熟悉将现有的第三方调试程序连接到VM内执行的程序,因此我无法提供相关建议。
但是,您可以控制模拟器的源代码,以便您可以尝试实现一个接口(可能是本地套接字等),模拟器会在其中报告有关正在执行的代码的状态信息并将其与源链接从一些生成的调试数据库中读取调试信息。您可能必须支持读取编译68k代码的编译器的调试格式,然后使用该信息将汇编指令链接回源代码行。
通过这种方式,您可以有效地实现调试器,但由于您已经拥有了模拟器(真的是VM),这可能不是太多的额外工作 - 模拟器已经拥有关于该模拟器的所有状态信息执行68k代码,您只需要暂停暂停执行并提取状态信息的方法。在此之后逐步执行代码可能是这些步骤的重复。