我想做一些简单而快速的控制台调试器。这个小的lib应该嵌入到主程序中。如何使用带变量名称的字符串获取变量地址?
所以我想这样做的东西一样运行在控制台模式程序这一点的同时:
“输入:打印我” “输出:15.53” “输入:设色255” “输入:打印颜色“ ”输出:255“
”i“和”color“都是预先声明的变量in-code。它不是一个解释器,只是检查和修改变量内容的方便方法。
GDB不是我的问题的有效解决方案,因为我将使用此代码用于我将编码的计算机图形程序,因此它需要能够以“发布模式”运行。
到目前为止,我发现的一个非常简单的解决方案是制作一个包含void指针,指针数据类型和表示变量名称的字符串的列表。但它不会像我想象的那样自动化。
有没有什么办法来转换一个字符串,让我们说“颜色”,以获得在C++中命名为颜色的整数变量的地址?如果不是,我怎么能解决这个问题?
GDB的确是最小的必要“控制台调试器”。 “转换一个字符串让我们说”color“来获得名为color的整型变量的地址的唯一方法是读取调试符号。这就是GDB所做的,当你处于“发布模式”时,这就是你失去的东西 – Arkadiy 2009-10-29 18:19:33
所以是的,它是一个解释器。您想要解释一个字符串值并检索变量的地址。您需要手动完成这项工作。所有源符号信息都从可执行文件中删除。 – 2009-10-29 18:42:22
@Martin:但调试信息_can_可以存储在外部文件中,所以不必丢失。 – xtofl 2009-10-29 20:33:52