gdb调试时怎样用watch 来看变量值

xinzhuochen   2011-3-18 23:32 楼主
#include
  
main()
{
void my_print(char *string );
void my_print(char *string );
char string[]="hello world ";
my_print(string);
my_print1(string);

}
void my_print(char *string)
{
   printf("The string is %s\n",string);
}
void my_print1(char *string)
{
char *string1;
int size ,i;
size = strlen(string);
string1=(char *)malloc(size +1);
  for(i=0;i {
   string1[size-i]=string;
}
string1[size + 1]='\0';
printf("The string printed backward is %s\n",string1);
}
比如用以上例子来看string1【size-i】的值

回复评论 (4)

gcc -g -o string string.c
gdb string
然后设置断点
break 23  到需要查看的地方(行号)
run  运行
Breakpoint 1, 。。。。string.c:23
断点停止
查看:
watch string[x]    跟踪变量变化情况
处处留心皆学问!
点赞  2011-3-19 08:42
还有要注意  全局变量或当前堆栈区可见的变量才能watch
处处留心皆学问!
点赞  2011-3-19 08:46

回复 板凳 daicheng 的帖子

谢谢!我照着你的话去做了但是还是没有出现那个变量的值,只出现了“Hardware watchpoint 2:string1【size-1】”,就是不出现string1[size-i] 这个变量的值
点赞  2011-3-19 15:02

还有按了很多next之后才出现一个string1【size-1】='\0'

点赞  2011-3-19 15:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复