我目前正在编写一个从C#生成类似JIT的EXE(重写自身)的编译器,无论如何都要使Visual Studio和它的调试器识别我想要构建它的方式(使用我的编译器)和调试输出?
我的编译器输出是EXE,但它不包含MSIL,它包含我的中间语言,其余内容是用C ++编写的JIT。 (C ++自己读取\ EXE并执行)
我很清楚,使它兼容并不神奇;我在这里得到了一个直接的答案,无论它有什么可能和暗示开始;例如编写带有这些函数和参数的C ++ DLL,并给出Visual Studio调试器参数的DLL路径,或者只是指向我在MSDN上的引用。 (我从谷歌那里获得了零结果)
答案 0 :(得分:7)
看来你想做的事情是可能的。 MSDN的相关部分将是:
Visual Studio集成开发环境(IDE)提供 标准组件的用户界面(UI),例如编译器, 编辑器和调试器。像Visual C ++和Visual Basic这样的功能 Visual Studio附带的内容本身就是IDE的扩展。 Visual Studio SDK提供工具,示例,向导,设计器和 帮助您开发自己的扩展应用程序的文档 IDE与其无缝集成。
特别注意:
Visual Studio包含一个完全交互式的源代码调试器, 提供功能强大且易于使用的工具,用于追踪错误 你的计划。调试器完全支持Visual Basic,C#, C / C ++和JavaScript。但是,使用Visual Studio SDK,即 可从Microsoft下载中心获得,其他编程 调试器中可以使用相同的rich支持语言 特征
还要注意Language Services
部分 - 这描述了为visual studio添加对新语言的支持的方法。特别是,您还可以为该语言添加调试支持。
请参阅:Language Service Support For Debugging
编译器的类型决定了您需要执行的操作 为您的语言调试。如果您的编译器以Windows为目标 操作系统和写一个.pdb文件,你可以调试程序 集成到Visual中的本机代码调试引擎 工作室。如果您的编译器生成Microsoft中间语言 (MSIL),您可以使用托管代码调试引擎调试程序, 它也集成到Visual Studio中。 如果你的编译器目标 您可以使用专有操作系统或不同的运行时环境 需要编写自己的调试引擎。
强调我的 - 即:你可以调试你想要的任何东西,但你需要自己编写调试器。
您可能想要下载Visual Studio SDK。