为调试目的嵌入脚本语言
Embedding scripting language for debugging purposes
我想在OpenGL c++应用程序中嵌入脚本语言(js, python, perl,甚至php,任何易于使用的语言)。我想这样做是为了能够做这样的事情:
- 在运行时打印各种c++类成员的值
- 导致在运行时唤醒gdb的中断
- 后,我发现一个错误,我想写一个小脚本在线复制它
我很确定这不会很容易。我想问一下这是个好主意还是坏主意,是否值得付出努力。
<标题>例子usecase h1> 我们假设我旋转一条线,直到它碰撞到什么东西,我的碰撞检测有一些SIGSEGV,在碰撞时发生。我打印出所有的角度,找出哪一个是SIGSEGV之前的一个,我写了一个小的python东西,它显示了一些值,这样我就可以找出出了什么问题等。我想基本上我要做的是避免gdb和嗯…我希望这个程序能有一种用Python来检查的方法。
不是我不喜欢gdb,而是我不喜欢它有限的命令…
UPDATE: GDB现在可以用Python扩展了。这解决了罐装命令序列的许多限制。
标题>我不认为为了调试而嵌入脚本语言是一个好主意。这绝对是可能的,但是对于您希望能够从脚本语言访问的所有内容,您必须提供一些接口,因为至少据我所知,没有办法直接调用c++或从脚本语言读取c++数据结构。如果您不想直接使用gdb,我建议您学习gdb或寻找gdb前端。我用过ddd,发现它很有用。Eclipse CDT的gdb前端也是可用的。使用调试器给你更多的灵活性,因为调试器知道c++和它的数据结构,因此允许你在运行时检查任何东西,而不必手动编写很多支持代码。
首先:您可以很容易地使用GDB打印出所有这些。在GDB中,您可能想要尝试"帮助数据"显示的内容。
您使用哪个IDE ?您可能想要尝试跨平台IDE Code::Blocks,它与GDB的接口相当整齐。
如果你想与另一种语言接口,你可能想看看"Lua"。它很容易学。见http://en.wikipedia.org/wiki/Lua_%28programming_language%29
Lua旨在嵌入到其他应用程序中,因此它提供了一个健壮的、易于使用的C API。该API分为两个部分:Lua核心和Lua辅助库。
我不知道这个主意是好是坏。
但是你可以看看Chaiscript,它很容易用c++编写
Python是一个非常好的应用程序脚本语言选择。这不是一个强有力的论据,但我知道lua在游戏编程中被广泛使用(我不知道为什么),它可能是有用的,因为你正在使用OpenGL。
使用lua -这是一个简单的基于堆栈的解释器。非常干净的API。
。:添加dt_format|dt_convert函数到lua的简单代码
- 是否有用于C++的类似 C 的语法脚本语言解释器?
- 使用C/C++作为脚本语言
- 我为什么要嵌入脚本语言
- C# 作为脚本语言
- 在C++中使用C#作为脚本语言
- 在Qt HTML5应用程序中使用替代脚本语言
- 在C++中使用脚本语言
- C++在编写脚本语言时如何处理类类型
- OCaml可以用作C++的脚本语言吗
- 从编译语言开发人员的角度理解/学习脚本语言
- 使用C++或任何windows脚本语言格式化文本数据
- 我想在C++项目中包含一种脚本语言.Lua vs Bison/Yacc
- 编写简单脚本语言的教程或介绍
- 用脚本语言实现lambdas
- 将脚本语言嵌入游戏引擎中的编程语言的目的是什么?
- 在c++中使用脚本语言在运行时创建新的类/成员
- 球拍作为游戏引擎中的脚本语言
- 编写脚本语言
- 脚本语言解释器源代码,可以学习
- 脚本语言和游戏开发/编程