Debugging 如何为自制语言创建调试器?

Debugging 如何为自制语言创建调试器?,debugging,programming-languages,Debugging,Programming Languages,我想构建一种语言,但我认为它至少需要一个REPL和一个调试器才有用 如何合并调试器对我来说是一件神奇的事情。我记得旧的VisualFoxpro有多棒,相比之下,xcode有多烂,所以我怀疑这有点难 哪种语言更容易集成调试器?翻译?编译?迫切的功能性的 如果语言是在LLVM、Lua/LuaJit和objective-c之上生成的,那么会有什么不同?(我问这个问题是因为对于我的宠物语言来说,有多容易是一个关键因素。所以我想,更容易的目标会让答案更容易) 使用GDB/LLDB或自己滚动是最好的方法吗

我想构建一种语言,但我认为它至少需要一个REPL和一个调试器才有用

如何合并调试器对我来说是一件神奇的事情。我记得旧的VisualFoxpro有多棒,相比之下,xcode有多烂,所以我怀疑这有点难

哪种语言更容易集成调试器?翻译?编译?迫切的功能性的

如果语言是在LLVM、Lua/LuaJit和objective-c之上生成的,那么会有什么不同?(我问这个问题是因为对于我的宠物语言来说,有多容易是一个关键因素。所以我想,更容易的目标会让答案更容易)

使用GDB/LLDB或自己滚动是最好的方法吗


在哪里可以找到这个问题?

对于口译员来说,这会容易得多。在执行语句之前,可以检查是否设置了全局“暂停”标志,如果设置了则暂停。在执行过程之前,您可以检查是否在该过程上设置了“跟踪”标志,并设置“暂停”标志,在返回时将其恢复为以前的值。

我使用过几种语言,尽管这看起来是正确的,但拥有调试器对于发现讨厌的错误是至关重要的。。。单元测试并不总是存在,也不总是更容易调试。用.NET和LLVM注入调试信息非常容易,但当然,您的语言必须符合一些共同的期望(例如,具有可识别的语句、局部变量、函数、函数参数等-调试器试图可视化的所有内容)。我的语言将类似于python。在哪里可以查看LLVM调试信息?@mamcx,太好了。我想知道一种语言是不是一种口译员能更容易些?