GDB调试动态库so问题?
#get.h 头文件内容如下:
int get ();
int set (int a);
#get.cpp 文件内容如下:
#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;
}
编译为库文件:gcc get.cpp -shared -g -DDEBUG -o libggg.so
测试程序pk.cpp如下
#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;
}
编译后执行app,输出正确,现在需要调试库文件,要在get函数,set函数里设置断点。
gdb app
b main
run
b get
此时提示 :Cannot access memory at address 0x5cc,
请问各位大侠,该如何在库的源文件里设置断点呀?所有的文件都在同一个目录里的呀。