在linux平台下的程序写了很多,但是调试感觉不是很熟悉。这几天专门去学习了一把,搞了一下so的调试。首先给出两个源文件,即调用程序和被调用动态库程序的源代码。调用程序源代码:main.cpp
#include <stdio.h>#include <dlfcn.h>#include <link.h>#include <stdlib.h>int main(){ void *dlh=NULL; int (*printmsg)(char *pMsg); int result; printf("load library!/r/n"); dlh=dlopen("./libprint.so",RTLD_LAZY); if(dlh==NULL) { printf("load library fail!"); return -1; } printf("search function!/r/n"); printmsg=(int (*)(char *))dlsym(dlh,"dj_print"); if(printmsg==NULL) {

本文介绍了在Linux环境下如何使用gdb调试动态链接库(so)。通过示例代码展示了调用程序和被调用动态库的创建过程,以及使用gdb设置断点、查看源代码和逐步调试的步骤。同时提到了当源代码与可执行文件不在同一目录时,如何设置gdb的源代码查找路径。
最低0.47元/天 解锁文章
2719





