【发布时间】:2008-09-19 17:44:49
【问题描述】:
我想在 VC6 监视窗口中获取 char[] 变量的完整值,但它只显示截断版本。我可以从调试内存窗口复制值,但其中包含混合行的十六进制和字符串值。肯定有更好的方法吗??
【问题讨论】:
标签: c++ debugging visual-c++-6
我想在 VC6 监视窗口中获取 char[] 变量的完整值,但它只显示截断版本。我可以从调试内存窗口复制值,但其中包含混合行的十六进制和字符串值。肯定有更好的方法吗??
【问题讨论】:
标签: c++ debugging visual-c++-6
对于大字符串,您几乎会被内存窗口卡住 - 工具提示最终会被截断。
幸运的是,内存窗口很容易从中获取数据 - 我倾向于以 8 字节块的形式显示它,因此它易于管理,找到您的字符串数据并将该批次剪切并粘贴到空白窗口中,然后使用 alt+drag 来选择列并删除十六进制值。然后从字符串的底部开始并不断向上翻页/删除(换行符)以构建您的字符串(我使用宏来表示该位)。
一旦你得到长字符串,我认为没有更好的方法了。
【讨论】:
推来推去你可以把手表放进去
给定
char bigArray[1000];
观看:
&bigArray[0]
&bigArray[100]
&bigArray[200]
...
或更改要在字符串中查找的位置的索引...
它很笨重,但它在过去对我有用。
【讨论】:
我没有VC6了,所以我不能尝试。不知道有没有用,或许你可以进入
(char*)textArray;
在监视窗口中。
可能是更好的解决方案:VS2008 会自动以您想要的方式显示文本。并且有一个免更改的VS2008 Express Edition,据我所知,可以用来开发商业应用程序。您甚至可以尝试继续使用 VC6 进行开发,仅使用 VS2008 进行调试。使用 VS2003 是可能的。大约 5 年前,我不得不维护一个使用 VC6 开发的应用程序。我一直使用 VC6 进行开发,但调试时我使用了 VS2003。
【讨论】:
我见过的唯一技巧就是看字符串 然后是字符串 + 50, + 100 等。
Eugene Ivakhiv 为 msvc 6 写了一个 addin,让您可以在编辑框中显示完整的字符串。
【讨论】:
VC6 有一个可爱的插件,叫做XDebug。它添加了一个用于查看不同类型字符串的对话框。它对我很有用。
【讨论】:
regsvr32 \path\XDebug.dll。然后按照安装说明进行操作。如果您不先执行此操作,则插件无法注册。我使用直接链接而不是指向难以阅读的博客的链接编辑了答案。
也许,习惯于创建日志文件,直接将输出写入文件,然后在你最喜欢的文本编辑器中调出。
【讨论】: