当前位置: 首页 > news >正文

主页面设计图片天津seo托管

主页面设计图片,天津seo托管,wordpress wp_tag_cloud,阿里云做的网站空间探索动态日志模块的实现 最初的目标是创建一个通用的日志模块, 它具有基本的日志输出功能并支持重定向. 这样, 如果需要更换日志模块, 可以轻松实现. 最初的构想是通过函数重定向, 即使用 dlsym 来重定向所有函数以实现打印功能. 然而, 这种方法引发了一个问题, 即无法正确获…

探索动态日志模块的实现

最初的目标是创建一个通用的日志模块, 它具有基本的日志输出功能并支持重定向. 这样, 如果需要更换日志模块, 可以轻松实现.

最初的构想是通过函数重定向, 即使用 dlsym 来重定向所有函数以实现打印功能.

然而, 这种方法引发了一个问题, 即无法正确获取文件名和行号信息, 同时也受到流式打印问题的影响.

因此, 我开始思考是否有一种方法可以在运行时动态获取文件名和行号信息.

目前, 思路有些混乱导致不太愿意深入研究. 于是将这些思考和学习记录下来, 以备将来深入学习之用.

寻找解决方案

在明确了需要实现的任务后, 我发现了一个 GitHub 项目, 实现了我所需的功能.

以下是我从该项目中获得的知识点, 有助于理解如何在运行时动态获取文件名和行号的机制:

  1. __cyg_profile_func_enter(void* callee, void* caller)__cyg_profile_func_exit(void* callee, void* caller)

    这两个函数是在所有函数的入口和出口上增加的回调函数, 用于跟踪函数调用.

    它们只在使用 extern "C" 并带有 __attribute__((no_instrument_function)) 属性的情况下才会生效.

    在编译时, 需要使用参数 -finstrument-functions -rdynamic -ldl 来启用它们.

  2. dladdr(address, info)

    处理地址信息, 并将栈的信息返回给 info(类型为 Dl_info 的结构体), 从而获取函数调用栈的相关信息.

  3. abi::__cxa_demangle(__mangled_name, __output_buffer, __length, __status)

    用于处理文件名信息, 以使其更易读.

  4. BFD(Binary File Descriptor)库和 GNU 二进制工具集

    BFD库的主要目标是提供一个通用的接口, 允许开发者读取、分析、修改和生成各种不同格式的二进制文件

    而无需关心文件格式的细节. 在这里, 它的主要作用是获取函数栈的信息.

    使用之前, 需要执行 bfd_init 函数进行初始化.

  5. bfd_openr(filename, target)

    这个函数用于打开一个二进制文件以进行读取操作, 返回一个 BFD 对象.

  6. bfd_close(abfd)

    用于识别和验证输入的二进制文件的格式是否受支持.

  7. bfd_get_symtab_upper_bound(abfd)

    用于计算符号表的上限大小, 以便在分析二进制文件时为符号表分配足够的内存空间.

  8. bfd_canonicalize_symtab

    用于规范化符号表中的符号, 通常包括去除重复的符号、按名称排序符号等操作.

    规范化符号表可以提高后续符号解析和分析操作的效率, 并确保符号表中的数据是一致和可预测的.

  9. _Unwind_Backtrace(func, argue)

    通常用于获取当前线程的函数调用堆栈的信息, 包括每个函数调用的返回地址和其他相关信息.

    这些函数与异常处理机制紧密相关, 通常在实现自定义异常处理或其他与异常相关的功能时使用.

  10. _Unwind_GetIPInfo

    用于获取当前程序执行的位置, 通常指向当前函数中的某一行代码.

  11. bfd_find_nearest_line

    在给定的地址 pc 处查找最近的源代码行号信息, 并将结果存储在传入的参数地址中.

    这些信息包括源代码文件名、包含地址的函数名称以及源代码中的行号.

http://www.15wanjia.com/news/8684.html

相关文章:

  • 鄄城住房和城乡建设局网站百度代运营公司
  • 石家庄做网站好的网络技术有限公司百度手机网页版入口
  • 新闻网站数据库建设一站式快速网站排名多少钱
  • 做网站的一般多钱正版google下载
  • 网站推广设计培训机构哪家好
  • 优时代网站建设中国局势最新消息今天
  • 企业网站建设三个原则tool站长工具
  • 泉山微网站开发百度网盘客服人工电话95188
  • 不懂编程如何做网站b2b电商平台
  • 电脑如何做网站空间岳阳seo
  • 如何创建网站页面培训计划方案
  • 做游戏任务赚钱的网站市场营销策划方案模板
  • 网站系统报价方案模板下载软文范例800字
  • 网站首页的优化济南百度推广优化
  • 做企业网站的头部什么配色西安seo外包行者seo06
  • 标准件做网站推广效果怎么样输入关键词自动生成文章
  • 做网站站长先把作息和身体搞好大连seo外包平台
  • 怎么建立自己网站郑州网站建设专业乐云seo
  • 做内贸的有哪些网站广州seo关键词优化外包
  • 富民县住房和城乡规划建设局网站seo 优化思路
  • 企业网站建设相关书籍注册推广赚钱一个10元
  • 贵阳学网站建设广州网站关键词排名
  • 晋中推广型网站开发页面关键词优化
  • 网站制作和如何推广新网站百度seo如何做
  • 如何做一个公司的网站seo网站监测
  • 兰州网站建设哪家专业深圳网站优化平台
  • 想自己搞一个视频网站怎么做东莞seo技术培训
  • 可不可以自己做网站关键字是什么意思
  • 做网站要有哪些知识西安百度网站快速优化
  • 建设一个有影响力的网站百度应用app下载