首页 > TAG信息列表 > name-mangling

c-nm命令输出中的“ @@”符号是什么意思?

我正在查看Linux中共享库的’nm’命令的输出.我看到这个 U stderr@@GLIBC_2.0 这是否意味着stderr被硬链接到glibc2.0?我问这个原因的原因是,我们有一组库(例如a1.so,a2.so,…)是针对我们导出的库的一个不同版本(例如ex.so.1,例2).导出的库都导出一个函数,例如foo.加载a * .so库时

子类不能从超类正确继承结构

这个问题已经在这里有了答案:            >            What is the meaning of a single and a double underscore before an object name?                                    14个 我刚开始使用Python,但是我无法

c-打印给定类型名称的模板

我想打印出一种类型的名称以用于调试,因此,我创建了一个可以完成上述功能的函数(实际上,我是从另一个SO答案中借用的,现在找不到),该函数如下所示: template <typename T> std::string TypeName(T) { auto name = typeid(T).name(); int status = 0; std::unique_ptr<

python – 手工编写C名称

我正在使用idapython插件在Python中为IDA Pro反汇编程序编写脚本.使用此功能,我可以填补IDA自动分析不足的空白. 令我难以理解的一个领域是命名位置/功能(为了更好的术语)“漂亮的名字”.我的意思的一个例子如下图所示: idapython和IDA Pro本身只允许我输入基本的C-ish函数名称.如果

C名称Mangling Library for Python

我想在Python程序中修改和解码C函数名称. 有没有这样的东西?我现在搜索了几个小时,也许我很幸运…解决方法:你很可能不想在Python中这样做.另外,您可能不应该从DLL中导出损坏的名称,因为它使得很难用于具有不同编译器的任何人. 如果必须使用损坏的名称,那么只需在Python代码中对它们

c – g未定义的引用虽然* .so文件中存在符号

我发现了许多类似的问题(例如this,that或this),但没有一个能帮我解决问题.我有一个* .so文件(来自gnss-sdr的核心),如下所示: $nm libgnss_system_parameters_dyn.so | c++filt |grep Gps_Eph 包含符号Gps_Ephemeris :: Gps_Ephemeris(),它应该是一个构造函数. 我写了一些最小的

c – 编译器不可知的fortran名称修改功能

我动态链接到fortran静态对象,并且需要能够(在运行时)获取fortran函数的名称(这是一个C字符串)并为编译器命名.是否有任何预先建立的功能可以达到此目的?在静态链接的情况下,我使用autoconf的FC_FUNC. 为清楚起见,我想要一个能够获取字符串的函数,将其解释为fortran子例程名称并对给

c – winapi从函数的地址中获取受损的名称

在我的应用程序中,我有功能的虚拟地址,我想得到他们的错位名称. 现在我只能通过使用winapi SymFromAddr函数获得未编号的名称.有没有办法获得受损的名字呢?解决方法:使用SymSetOptions().您想要关闭SYMOPT_UNDNAME选项以查看损坏的名称. 所以,粗略地说: DWORD options = SymGetOpt

在extern中编写c代码

我正在尝试实现一个外部c头接口,它将作为共享库生成.它们的示例接口具有包含在extern“C”中的c样式功能,因为它们不希望执行名称修改. 我当前的实现依赖于qt.我现在可以将这个qt代码放在extern“C”中并期望它开箱即用吗?如果这有效的原因? 伪代码://不要指望它可以工作并且可能包含

c – 奇怪的VS名称破坏行为?

考虑以下无操作代码,我在Win10 64位上编译为C: int test(int argc, char *argv[]); int main(int argc, char *argv[]) { return test(argc, argv); } int test(int argc, char **argv) { return 0; } 如果所有这些代码都放在同一个.cpp文件中,它会在VS2012,VS2013,VS2015

在OS / X中生成C BackTraces(10.5.7)

我一直在使用backtrace和backtrace_symbols来生成编程堆栈跟踪,以便进行日志记录/诊断.它似乎粗略地工作,但是,我得到一点点修改,并且没有与每个函数调用相关联的文件/行号(正如我在gdb bt调用中所期望的那样).这是一个例子: 1 leonardo 0x00006989 _ZN9ExceptionC2E13ExceptionType

Python:动态类生成:覆盖成员

我有一个python类层次结构,我想在运行时扩展.此外,此层次结构中的每个类都有一个静态属性“dict”,我想在每个子类中覆盖它.简化它看起来像这样: ‘dict’是受保护的(公共但具有领先的下划线)成员 class A(object): _dict = {} @classmethod def getdict(cls):