你们一般是用gdb调试,还是自己写个log函数

IranCyberArmy 2013-04-12 04:40:57
一般讲gdb的文章,都会讲cc -g tst.c -o tst这样来调试.

我想问一下,多个文件的话,只需要 -g main函数所在文件,还是每个.c都要这样
Makefile文件怎么写?
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2013-04-12
  • 打赏
  • 举报
回复
跟我一起学makefile 看需求
tommwq 2013-04-12
  • 打赏
  • 举报
回复
越来越喜欢用log。 写Makefile时,-g参数在可以放到CFLAGS里。
nadleeh 2013-04-12
  • 打赏
  • 举报
回复
引用 楼主 IranCyberArmy 的回复:
一般讲gdb的文章,都会讲cc -g tst.c -o tst这样来调试. 我想问一下,多个文件的话,只需要 -g main函数所在文件,还是每个.c都要这样 Makefile文件怎么写?
要习惯用程序本身来调试,有些环境是没有工具可用的
aozhi 2013-04-12
  • 打赏
  • 举报
回复
你所谓的cc -g tst.c -o tst实际上执行了两步。 第一步是把每个源代码编译成对应的.o文件,第二步是把.o链接起来。 -g的作用把源代码中的标识符对应的一些调试信息写入.o文件,显然必须在编译时才能实现,所以是每个模块都要加-g的。 那种崩溃了出core文件的错误用gdb调试马上就能定位;还有一些逻辑复杂的程序,输入的数据特别难以满足条件的或有其他进程影响的,用gdb单步进去后修改变量值的方法比较省事。
whizer 2013-04-12
  • 打赏
  • 举报
回复
1)每个文件都需要,如果文件太多的话,建议写makefile. 2)log与gdb配合使用,log可以在系统正常运行情况下监控程序的运行状态.一旦发现问题就使用gdb进行进一步的调试.
liao05050075 2013-04-12
  • 打赏
  • 举报
回复
每个.c都要这样 makefile通常分模块编译,比如a.c 编译成a.o,b.c编译成b.o 最后把a.o b.o链接成为一个程序 至于调试是用gdb还是打log,这个看具体的应用场合。如果你的程序已经core了,也有core文件,你自然用gdb来调试。 如果你的程序结果输出不对,而你又不知道什么情况下它会出错。那么从log中找线索是唯一的办法

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧