c - 程序集别名和符号
问题描述
1.cpp:
int meth() {
return 0;
}
__asm__(".global meth_alias \n meth_alias = meth");
__asm__(".global meth_alias2 \n meth_alias2 = meth");
2.cpp:
int meth_alias();
int meth_alias2();
int test()
{
return meth_alias()+ meth_alias2();
}
建造:
g++ -c -fPIC 1.cpp
g++ -c -fPIC 2.cpp
g++ -o 12.so --shared 1.o 2.o
1.o中应该有符号“meth_alias”和“meth_alias2”,但是如何用nm/objdump/readelf打印这些符号呢?现有的命令标志仅将别名显示为一个未定义的符号,称为原始名称“meth”。每个别名不应该有一个条目吗?
别名只是符号表中的普通符号,即名称+地址和地址与原始方法相同吗?
解决方案
推荐阅读
- python - 如何将表导出到具有字段值作为文件名而不是部分的文件中
- c# - ASP Core HttpClientFactory 模式使用客户端证书
- php - 页面加载时的 Google reCAPTCHA 问题
- yahoo-finance - 如何从 URL 获取 Yahoo Finance 历史收盘价
- node.js - 错误:初始化会话后发送标头后无法设置标头
- sql - 连续对行的平均值
- javascript - 如何在没有 d.ts 文件的情况下导入第三方包?
- java - 将java行注释自动转成块注释
- oop - 如何将许可代码分成图层?一个用于验证,另一个用于创建许可证
- css - 从引导程序 3.3.7 到引导程序 4.1.3