我使用GDB附加到正在运行的进程并捕获断点。我执行以下命令序列:$ gdb -tui(gdb)附加PID现在我打开了GUI TUI view,但没有任何源文件。我一直在拼命地试图谷歌一种方法来加载/打开一个源文件,以便能够执行命令“打破“,但不幸的是,我找不到任何东西,将简单的工作。
t98cgbkg1#
我也有同样的问题令人惊讶的是,这样一个基本的函数是如此晦涩难懂。我的解决方法是使用文件名和函数名来设置断点:
b <filename>:<function name>
字符串
piwo6bdm2#
我终于知道了如何在cgdb中做到这一点:1.按Esc键转到代码窗口。1.按Alt-O组合键。1.向下滚动到要打开的源文件,然后按Enter键。现在您可以在这个档案中设定中断点。
0dxa2lsx3#
我发现在gdb中,list知道符号,所以l main()个将在任何定义的文件中打开main(在这个例子中我假设是C-你没有指定语言)。TAB还完成了函数名(与Linux命令行一样),
list
l main()
TAB
3mpgtkmj4#
阅读GDB文档中的检查源文件章节。你可以使用list命令。当然,你需要适当地设置目录列表。使用dircommand。GDB documentation以教程章节开始,所以请阅读它。当然,您的所有软件都应该使用-g(甚至 -g3)从编译器获取其调试信息。顺便说一句,你的源文件已经被gdb打开了(也就是说:对gdb可见)。你可能想要list的一部分,或者在其中放置一个断点(使用break或tbreak)。不需要你的部分的特定操作就可以让它对gdb可见(可能除了dir命令)。
dir
-g
-g3
gdb
break
tbreak
osh3o9ms5#
只需使用list file.c:1来显示第1行的file.c内容。
list file.c:1
5条答案
按热度按时间t98cgbkg1#
我也有同样的问题令人惊讶的是,这样一个基本的函数是如此晦涩难懂。我的解决方法是使用文件名和函数名来设置断点:
字符串
piwo6bdm2#
我终于知道了如何在cgdb中做到这一点:
1.按Esc键转到代码窗口。
1.按Alt-O组合键。
1.向下滚动到要打开的源文件,然后按Enter键。
现在您可以在这个档案中设定中断点。
0dxa2lsx3#
我发现在gdb中,
list
知道符号,所以l main()
个将在任何定义的文件中打开main(在这个例子中我假设是C-你没有指定语言)。
TAB
还完成了函数名(与Linux命令行一样),3mpgtkmj4#
阅读GDB文档中的检查源文件章节。
你可以使用
list
命令。当然,你需要适当地设置目录列表。使用
dir
command。GDB documentation以教程章节开始,所以请阅读它。
当然,您的所有软件都应该使用
-g
(甚至-g3
)从编译器获取其调试信息。顺便说一句,你的源文件已经被
gdb
打开了(也就是说:对gdb
可见)。你可能想要list
的一部分,或者在其中放置一个断点(使用break
或tbreak
)。不需要你的部分的特定操作就可以让它对gdb
可见(可能除了dir
命令)。osh3o9ms5#
只需使用
list file.c:1
来显示第1行的file.c内容。