龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

如何在 Linux 下调试动态链接库

时间:2011-03-20 22:37来源:未知 作者:admin 点击:
分享到:
大家都知道在 Linux 可以用 gdb 来调试应用程序,当然前提是用 gcc 编译程序时要加上 -g 参数。 我这篇文章里将讨论一下用 gdb 来调试动态链接库的问题。 首先,假设我们准备这样的一个

大家都知道在 Linux 可以用 gdb 来调试应用程序,当然前提是用 gcc 编译程序时要加上

-g 参数。

我这篇文章里将讨论一下用 gdb 来调试动态链接库的问题。

首先,假设我们准备这样的一个动态链接库:

QUOTE:

库名称是: ggg

动态链接库文件名是: libggg.so

头文件是: get.h

提供这样两个函数调用接口:

int get ();

int set (int a);

要生成这样一个动态链接库,我们首先编写这样一个头文件:

[Copy to clipboard]

CODE:

/************关于本文档********************************************

*filename: get.h

*purpose: 一个动态链接库头文件示例

*tided by: zhoulifa(zhoulifa@163.com) 周立发 (http://zhoulifa.9999mb.com)

Linux 爱好者 Linux 知识传播者 SOHO 族 开发者 最擅长 C 语言

*date time: 2006-11-15 21:11:54

*Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途

* 但请遵循 GPL

*Hope:希望越来越多的人贡献自己的力量,为科学技术发展出力

* 科技站在巨人的肩膀上进步更快!感谢有开源前辈的贡献!

*感谢 vcclass@hotmail.com 提供原始代码,

我在他的基础上整理了此文

*********************************************************************/

int get ();

int set (int a);

然后准备这样一个生成动态链接库的源文件:

[Copy to clipboard]

CODE:

/************关于本文档********************************************

*filename: get.cpp

*purpose: 一个动态链接库源文件示例

*tided by: zhoulifa(zhoulifa@163.com) 周立发 (http://zhoulifa.9999mb.com)

Linux 爱好者 Linux 知识传播者 SOHO 族 开发者 最擅长 C 语言

*date time:2006-11-15 21:11:54

*Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途

* 但请遵循 GPL

*Hope:希望越来越多的人贡献自己的力量,为科学技术发展出力

* 科技站在巨人的肩膀上进步更快!感谢有开源前辈的贡献!

*感谢 vcclass@hotmail.com 提供原始代码,

我在他的基础上整理了此文

*********************************************************************/

#include

#include "get.h"

static int x=0;

int get ()

{

printf ("get x=%d\n", x);

return x;

}

int set (int a)

{

printf ("set a=%d\n", a);

x = a;

return x;

}

然后我们用 GNU 的 C/C++ 编译器来生成动态链接库,编译命令如下:

QUOTE:

g++ get.cpp -shared -g -DDEBUG -o

libggg.so

[1] [2] [3] 下一页

精彩图集

赞助商链接