什么是_dl_lookup_symbol_x? – C剖析

前端之家收集整理的这篇文章主要介绍了什么是_dl_lookup_symbol_x? – C剖析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用valgrind / callgrind来配置我的服务器代码进行一些优化. callgrind向我报告的两个最常用的调用(使用kcachegrind来查看)是_dl_lookup_symbol_x和do_lookup_x.然而,我不知道这些是什么,似乎没有找到关于它们的任何文档.

任何人都可以告诉我这两个功能的使用以及他们在做什么?

解决方法

_dl_lookup_symbol_x是glibc C运行时库中的内部函数.如果您的 browse是glibc的来源,您将在_dl_lookup_symbol_x定义上方找到此评论
/* Search loaded objects' symbol tables for a definition of the symbol
   UNDEF_NAME,perhaps with a requested version for the symbol.

do_lookup_x只是在_dl_lookup_symbol_x函数调用的帮助函数.

我不是glibc内部的专家,但是从我可以收集的内容中,_dl_lookup_symbol_x在程序加载的共享库中寻找一个符号(如函数).

我不知道为什么这些函数在你的分析中经常被调用,但至少现在你对它们做了什么有一些线索.您的分析应该告诉您,如何经常调用_dl_lookup_symbol_x有哪些功能负责.

请注意,当程序第一次启动时,_dl_lookup_symbol_x被多次调用是正常的,因为运行时计算出具有给定名称的共享库函数的地址.如果您正在剖析一个非常短暂的程序,那么您会发现大部分时间都花在内部“内务”功能中,而不是您自己的代码,这并不奇怪.

猜你在找的C&C++相关文章