linux下如何调试多文档c程序?

发布于 2022-07-22 09:07:51 字数 311 浏览 10 评论 7

我有一个比较大的c程序需要调试。
为了清楚表达我的问题,让我用一个比较简单的例子来说明。

假设我的程序文件包括:

    main.c, utility1.c, utility2.c

编译之后我就有

    main.o, utility1.o, utility2.o

连接形成可执行程序之后我有

    main.exe

我现在要用gdb来调试这个项目,应该如何办?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

怎樣才叫好 2022-07-26 13:35:44

谢谢各位,我的问题已经解决了。

我的问题是:需要调试一个非常大的项目,这个项目由多个源文件
构成,编译之后形成单一的exe文件,因为我的源文件数目太多,
我没法逐一地为编译这些源文件的make命令加上-g参数,而只
是在main.cpp文件的make编译命令中加上了-g参数,所以在调试
时,一旦程序的执行超出了main.cpp的范围,gdb就打印出看不懂
的信息。

另外,我使用的是cygwin平台,它是一个在windows环境下
仿真linux的开发平台。使用这个平台的好处是我可以使用windows的
编辑工具譬如source-insight之类来编写员文件。

我的可执行文件都命名为*.exe形式,因为我这些程序虽然是用
cygwin为linux编译形成的,它们在我的windows操作系统下是
完全可见的,可修改的。

混浊又暗下来 2022-07-26 13:31:57

怀疑
lz 要表达的时
载 linux 下怎么调试 exe 文件
:)

生生漫 2022-07-26 13:25:47

原帖由 sufive 于 2006-8-12 09:45 发表
我有一个比较大的c程序需要调试。
为了清楚表达我的问题,让我用一个比较简单的例子来说明。

假设我的程序文件包括:

    main.c, utility1.c, utility2.c

编译之后我就有

    main.o, utility1.o,  ...

>>
>>
>>编译的时候加上-g参数,然后直接gdb main.exe就可以了。
>>顺便说一下,exe后缀的文件在linux是比较奇怪的,你用的什么平台?
>>
>>

[ 本帖最后由 Bayweb 于 2006-8-13 12:07 编辑 ]

∝单色的世界 2022-07-26 12:57:02

原帖由 sufive 于 2006-8-12 10:15 发表
老兄,gdb main.exe的话,打出来的信息总是人看不懂的
一些机器指令以及机器地址信息.譬如说:

  gdb gle.exe                      (我的主程序是gle.exe)
   <gdb>run fitz.gle             (我的主 ...

发生段错误了,通常因为指针操作不当, 访问了非法地址。
backtrace 一下,看哪里出错了。

人│生佛魔见 2022-07-26 12:14:00

那你的调试是什么个意思?

<逆流佳人身旁 2022-07-26 09:59:54

老兄,gdb main.exe的话,打出来的信息总是人看不懂的
一些机器指令以及机器地址信息.譬如说:

  gdb gle.exe                      (我的主程序是gle.exe)
   <gdb>run fitz.gle             (我的主程序需要从fitz.gle中读入数据)

   starting program /cygdrive/e/texRelated/GLE/gle4/build/bin/gle.exe fitz.gle

   program received signal SIGSEGV, Segmentation fault.

   0x610b2c16 in pthread_key_create <> from /usr/bin/cygwin1.dll

   <gdb>

靖瑶 2022-07-25 14:55:12

gdb main

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文