gdb 调试 刺骨的言语ヽ痛彻心扉 2022-06-09 11:26 451阅读 0赞 ## 基本用法 ## 1. gcc -g xx.c xx 2. gdb xx ## 基本命令 ## 1. start 启动程序, 默认停留在main程序的第一行 2. run 启动程序, 程序默认运行无参数; 可以指定参数, 跟在sh中执行命令的方式一致, 文件重定向也可以; 如果不指定参数, 则使用上一次已经指定的参数; 也可以用set args arg1..argn指定参数; 清空参数set args 3. list 缩写l, 查看程序源代码, 默认往下显示10行, list - 表示往上查看10行, list linenum 表示查看该行前后共10行代码, list function\_name 表示查看该函数定义前后共10行代码, list filename: linenum, list filename: function 分别表示查看指定文件中的特定行或者特定函数, 上下共10 行代码 4. break 缩写b, 设置断点 break filename:funcname:labelname:linenum, 一般使用b linenum或者b funcname; 可以增加条件断点, 在描述完断点后, 增加if expression 即可 5. continue 缩写c, 表示继续执行程序下一个断点; 如果增加参数N, 如 continue N, 则表示执行到下一个断点, 并且该断点要触发了N-1次, 才会在该断点出停下, 否则继续向下执行 6. print expression, 打印变量的值 7. show option 查看gdb的配置 8. info subcommand 查看正在被调试的程序的信息, 根据子命令来区分 ## 多进程调试 ## 1. set detach-on-fork off, 默认该参数的值是on 2. set follow-fork-mode, 可以选择fork后是在父进程还是子进程中停住 3. info inferiors 查看当前有几个进程, 每个进程都会分配一个编号,用于在不同的进程之间切换调试 4. inferior num 根据进程分配的编号, 来切换被调试的进程 参看 [http://blog.csdn.net/pbymw8iwm/article/details/787679][http_blog.csdn.net_pbymw8iwm_article_details_787679] PS: 1. 父进程的断点会被子进程继承, 因此, 可以先在父进程中打好断点, 然后切换到子进程后, 就可以用continue直接触发断点了 2. 在fork之后, 子进程默认会停留在fork.c的某一行, 需要continue, 子进程才会继续执行 3. 子进程的调试方法, 跟普通的进程调试方法类似 ## 推荐 ## 1. 默认gdb查看源码很不方便, 不能轻松看出程序执行的位置, 建议安装cgdb, 基于curse和vim的gdb, 查看源码比较方便, 代码高亮显示, 执行多进程调试时, 显示不同的源文件和执行行 ## 参考 ## 1. [http://www.cnblogs.com/rosesmall/archive/2012/04/12/2444431.html][http_www.cnblogs.com_rosesmall_archive_2012_04_12_2444431.html] [http_blog.csdn.net_pbymw8iwm_article_details_787679]: http://blog.csdn.net/pbymw8iwm/article/details/787679 [http_www.cnblogs.com_rosesmall_archive_2012_04_12_2444431.html]: http://www.cnblogs.com/rosesmall/archive/2012/04/12/2444431.html
相关 GDB调试 文章目录 * * 1、gdb调试编译准备 * 2、开启gdb调试 * 3、查看程序 l * 4、断点 . b *... 痛定思痛。/ 2024年04月19日 13:17/ 0 赞/ 187 阅读
相关 gdb 调试 信息显示命令 [info address][] [info registers][] [info files][] [info functions][ 灰太狼/ 2023年06月03日 15:58/ 0 赞/ 124 阅读
相关 GDB调试 不错的文章: [GDB调试][GDB] [GDB调试入门,看这篇就够了][GDB 1] [GDB]: https://blog.csdn.net/Hou_Rj/ar 淩亂°似流年/ 2023年05月31日 06:50/ 0 赞/ 6 阅读
相关 GDB调试 一.快速进阶 1.编译生成可执行文件 gcc -g test.c -otest 2.启动gdb gdb test 3.在main函数处打断点。 bre 爱被打了一巴掌/ 2022年09月24日 11:21/ 0 赞/ 397 阅读
相关 GDB 调试 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现G 朱雀/ 2022年08月27日 04:47/ 0 赞/ 451 阅读
相关 gdb 调试 基本用法 1. gcc -g xx.c xx 2. gdb xx 基本命令 1. start 启动程序, 默认停留在main程序的第一行 2. run 启 刺骨的言语ヽ痛彻心扉/ 2022年06月09日 11:26/ 0 赞/ 452 阅读
相关 gdb调试 在用gcc编程的时候可能会出bug,这时候就可以通过gdb这个工具进行调试,gdb调试的一定是直接有\.c 文件生成的bebug版本的可执行文件,否则,进入gdb之后敲入lis Dear 丶/ 2022年06月02日 07:55/ 0 赞/ 509 阅读
相关 gdb调试 要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项 gdb常用命令: list/l + 行号:显示源代码,接着上次的位置往下列每次10行 li Love The Way You Lie/ 2022年05月14日 04:06/ 0 赞/ 449 阅读
相关 GDB调试 [https://www.cnblogs.com/HKUI/p/8955443.html][https_www.cnblogs.com_HKUI_p_8955443.html] 曾经终败给现在/ 2022年03月29日 17:38/ 0 赞/ 503 阅读
相关 GDB调试 另外有: Gdb+core调试技术 http://zhwen.org/xlog/?p=453 一、gdb简介和安装 GDB是GNU开源组织发 谁践踏了优雅/ 2022年01月22日 04:29/ 0 赞/ 506 阅读
还没有评论,来说两句吧...