gdb 边调试 边显示

时间:2021-01-30 08:59:47
for(int i=0;...)
{
printf("%s%d\n",...);
}
我们知道,用VC调试这样的代码的时候,执行过printf("%s%d\n",...);这句,控制台会打印出结果.
而gdb只能p变量,可以看到结果吗?

13 个解决方案

#1


输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

#2


引用 1 楼 mujiok2003 的回复:
输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

#3


运行之前设置断点。运行的时候到那行会进入交互模式。

#4


说实话,GDB,要调试,用不熟还真的是很蛋疼.
调试多维指针.那叫一个头大.
当然了,前提是因为我用不熟练.

#5


打开gdb,然后 
(gdb) help watch
Set a watchpoint for an expression.
Usage: watch [-l|-location] EXPRESSION
A watchpoint stops execution of your program whenever the value of
an expression changes.
If -l or -location is given, this evaluates EXPRESSION and watches
the memory to which it refers.

#6


引用 2 楼 zhangwuji155 的回复:
Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

可以再开一个,打开一个terminal,输入tty获取id 如/dev/tty2
在gdb里输入 tty /dev/tty2就行了

#7


最喜欢gdb了,比蛋疼的VS好太多了

#8


printf可以看到输出。
自己试试不就知道了。

#9


调试也是技术

静下心找本书看看

#10


引用 2 楼 zhangwuji155 的回复:
Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

就是混合显示的。 
gdb 边调试 边显示

#11


引用 10 楼 mujiok2003 的回复:
Quote: 引用 2 楼 zhangwuji155 的回复:

Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

就是混合显示的。 
gdb 边调试 边显示

你这个是Windows下的GCC?我的不显示啊

#12


引用 9 楼 AnYidan 的回复:
调试也是技术

静下心找本书看看
我学编程10多年了,没有见过哪本书里讲这个,你倒是说说哪本书里有啊

#13


引用 10 楼 mujiok2003 的回复:
Quote: 引用 2 楼 zhangwuji155 的回复:

Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

就是混合显示的。 
gdb 边调试 边显示

唉,不知道为什么,在简单的程序里,是显示的,在复杂的,压力测试的程序里就显示不出来,不知道是不是要fflush

#1


输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

#2


引用 1 楼 mujiok2003 的回复:
输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

#3


运行之前设置断点。运行的时候到那行会进入交互模式。

#4


说实话,GDB,要调试,用不熟还真的是很蛋疼.
调试多维指针.那叫一个头大.
当然了,前提是因为我用不熟练.

#5


打开gdb,然后 
(gdb) help watch
Set a watchpoint for an expression.
Usage: watch [-l|-location] EXPRESSION
A watchpoint stops execution of your program whenever the value of
an expression changes.
If -l or -location is given, this evaluates EXPRESSION and watches
the memory to which it refers.

#6


引用 2 楼 zhangwuji155 的回复:
Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

可以再开一个,打开一个terminal,输入tty获取id 如/dev/tty2
在gdb里输入 tty /dev/tty2就行了

#7


最喜欢gdb了,比蛋疼的VS好太多了

#8


printf可以看到输出。
自己试试不就知道了。

#9


调试也是技术

静下心找本书看看

#10


引用 2 楼 zhangwuji155 的回复:
Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

就是混合显示的。 
gdb 边调试 边显示

#11


引用 10 楼 mujiok2003 的回复:
Quote: 引用 2 楼 zhangwuji155 的回复:

Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

就是混合显示的。 
gdb 边调试 边显示

你这个是Windows下的GCC?我的不显示啊

#12


引用 9 楼 AnYidan 的回复:
调试也是技术

静下心找本书看看
我学编程10多年了,没有见过哪本书里讲这个,你倒是说说哪本书里有啊

#13


引用 10 楼 mujiok2003 的回复:
Quote: 引用 2 楼 zhangwuji155 的回复:

Quote: 引用 1 楼 mujiok2003 的回复:

输出的控制台下内容,在gdb调试时一样可以看到。 
p变量类似于vc的watch功能。 

怎么看呢?因为VC,调试界面和控制台界面是哪个界面,而gdb却是一个界面,难道有办法再开一个terminal显示printf的东西?

就是混合显示的。 
gdb 边调试 边显示

唉,不知道为什么,在简单的程序里,是显示的,在复杂的,压力测试的程序里就显示不出来,不知道是不是要fflush