用gdb调试动态链接库
来源:互联网 发布:java工程师累吗 编辑:程序博客网 时间:2024/05/29 12:14
大家都知道在
我这篇文章里将讨论一下用
首先,假设我们准备这样的一个动态链接库:
引用:
库名称是:
动态链接库文件名是:
头文件是:
提供这样两个函数调用接口:
要生成这样一个动态链接库,我们首先编写这样一个头文件:
int get (); int set (int a);
然后准备这样一个生成动态链接库的源文件:
#include <stdio.h> #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; }
然后我们用
引用:
g++
这样我们就准备好了动态链接库了,下面我们编写一个应用程序来调用此动态链接库,源代码如下:
#include <stdio.h> #include "get.h" int main (int argc, char** argv) { int a = 100; int b = get (); int c = set (a); int d = get (); printf ("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); return 0; }
编译此程序用下列命令,如果已经把上面生成的
引用:
g++
否则就用下面这条命令:
引用:
g++
下面我们就开始调试上面命令生成的
引用:
#gdb
GNU
Copyright
GDB
welcome
Type
There
This
(gdb)
Breakpoint
(gdb)
Function
Make
Breakpoint
(gdb)
Starting
Breakpoint
Pending
Breakpoint
7
(gdb)
8
(gdb)
get
9
(gdb)
Breakpoint
11
(gdb)
6
7