3

作为主题,我希望我可以在 c 中观看一个字符串,例如下面。
我希望我只能在
HELLO->GOOD、GOOD->HELLO 时停下来,我应该怎么做?


char s[10];
strcpy(s,"HELLO");
strcpy(s,"HELLO");
strcpy(s,"HELLO");
strcpy(s,"GOOD");
strcpy(s,"GOOD");
strcpy(s,"GOOD");
strcpy(s,"HELLO");
strcpy(s,"HELLO");
strcpy(s,"HELLO");

4

3 回答 3

2

这个问题的答案可能会对你有所帮助。

我无法使用该语法设置观察点(这将是完美的解决方案),但该display命令是一个非常好的选择。每次执行中断时,它都会打印其表达式的结果。

要使其适用于您的代码,请在该char s[10];行设置一个断点并找出s数组的地址(使用p s)。然后,设置一个显示display *(char *)0x00000000@10(其中0x00000000是数组的地址,后面的数字@是数组的大小)。然后您可以在程序的不同点设置断点,以便每次缩小搜索空间。

于 2013-05-07T14:15:43.587 回答
1

作为一种解决方法,您可以为表达式设置监视

watch s[0]+s[1]+s[2]+s[3]

当字符串中的前四个字符中的任何一个更改时将停止

于 2017-02-27T09:44:07.353 回答
-2

您可以通过使用 -g 编译 tha 程序来使用 gdb,然后创建一个断点,然后使用 n 查看调试......但经常使用 printf 语句,以便您可以看到实际发生的情况......

于 2013-04-17T04:56:16.383 回答