根据函数地址查找函数名称,或根据函数名称查找函数地址的实现
时间:2021-08-24
本文章向大家介绍根据函数地址查找函数名称,或根据函数名称查找函数地址的实现,主要包括根据函数地址查找函数名称,或根据函数名称查找函数地址的实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
linux平台上查问题时,定位到出错的函数地址,但无法知道是哪个模块的函数,记录如下函数可实现:
int getFuncAddrByName(char *funcName, unsigned int nameLen)
{
void *handle = NULL;
void *iptr = NULL;
/* open the needed object */
handle = dlopen(NULL, RTLD_LOCAL | RTLD_LAZY);
if(handle == NULL)
{
return NULL;
}
/* find the address of function and data objects */
iptr = dlsym(handle, funcName);
dlclose(handle);
if(iptr == NULL)
{
return NULL;
}
return (int)iptr;
}
int getFuncNameByAddr (FUNCPTR funcAddr, char *funcName, unsigned int funcNameLen)
{
void *handle = NULL;
Dl_info dl;
int ret = 0;
/* open the needed object */
handle = dlopen(NULL, RTLD_LOCAL | RTLD_LAZY);
if(handle == NULL)
{
return -1;
}
/* find the address of function and data objects */
ret = dladdr (funcAddr, &dl);
dlclose(handle);
if(ret == 0)
{
return -1;
}
strncpy(funcName, dl.dli_sname, funcNameLen - 1);
return 0;
}
原文地址:https://www.cnblogs.com/yangyi54920/p/15179035.html
- nginx学习(1):编译、安装、启动
- Immutable(不可变)集合
- nginx学习(2):启动gzip、虚拟主机、请求转发、负载均衡
- 使用WiX制作简单MSI安装程序
- 企业应用通用架构图
- CacheManager:–个通用缓存接口抽象类库
- silverlight: http请求的GET及POST示例
- 如何判断AI创造物能够成为“作品”?附独家视频讲解
- 程序员最喜欢的五大神器
- UE4新手编程之创建C++项目
- 如何启动“Microsoft File Transfer Manager”
- 职责链(Chain of Responsibility)模式在航空货运中的运用实例
- 灵活的 overflow
- 制作WordPress侧边栏“热门文章”小工具并集成在主题中的方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Vue.js】Vue.js组件库Element的基础用法
- 常见的图像处理技术
- docker浅入深出续
- 【21期】你能说说Java中Comparable和Comparator的区别吗
- 昨天晚上熬夜整理的Java注解相关学习笔记
- 对图标的坐标轴进行调整
- Vue 开发技巧总结
- 35.opengl PBR-光照
- 聊聊claudb的list command
- nginx add_header 仅部分或一次生效的原因与解决办法
- 聊聊claudb的keys command
- 聊聊claudb的server command
- 聊聊claudb的Database
- 聊聊claudb的SlaveReplication
- flutter doctor 卡死