linux-kernel – 内核线程转储中的“isra”是什么
Linux内核调用堆栈转储通常包括以“.isra.NNN”结尾的函数名,其中NNN是某些数字.例如,请参阅 here和 here. 这意味着什么,这个数字意味着什么? 解决方法
从gcc manual开始: -fipa-sra
在此选项下优化的所有函数都会在其名称后附加isra.我深入研究了gcc代码并找到了附加字符串的函数. tree clone_function_name (tree decl,const char *suffix) { tree name = DECL_ASSEMBLER_NAME (decl); size_t len = IDENTIFIER_LENGTH (name); char *tmp_name,*prefix; prefix = XALLOCAVEC (char,len + strlen (suffix) + 2); memcpy (prefix,IDENTIFIER_POINTER (name),len); strcpy (prefix + len + 1,suffix); #ifndef NO_DOT_IN_LABEL prefix[len] = '.'; #elif !defined NO_DOLLAR_IN_LABEL prefix[len] = '$'; #else prefix[len] = '_'; #endif ASM_FORMAT_PRIVATE_NAME (tmp_name,prefix,clone_fn_id_num++); return get_identifier (tmp_name); } 这里,参数2,const char *后缀是“isra”,并注意函数宏ASM_FORMAT_PRIVATE_NAME的底部,它将clone_fn_id_num作为其第三个参数.这是在“isra”之后找到的任意数字.其名称是在此编译器选项下克隆的函数计数(或者可以是跟踪所有克隆函数的全局计数器). 如果你想了解更多,请在文件gcc / tree-sra.c中搜索modify_function,然后调用cgraph_function_versioning(),它将“isra”作为最后一个参数. (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 如何在Linix中执行文件操作即cp,mv,rm和chown等时
- linux – 我需要一个TCP选项(ioctl)来立即发送数据
- LINUX教程:Linux下打补丁patch 和 diff 命令的使用
- 休息 – 是否无法使用curl来使用Google Cloud Speech API识
- linux – 使用log4j将日志数据写入syslog
- 在Linux下检测Python/GTK中的用户注销/关闭 – 未收到SIGTE
- linux – 如何在Ubuntu 10.10中的NTFS上运行C二进制文件?
- linux – 将文件从给定的’x(起始)偏移复制到给定’y(结束)
- Swift on Linux – 导入第三方模块
- linux – 如何找到哪个进程绑定套接字而不是监听?
- linux-kernel – 编译Linux内核错误xt_CONNMARK.
- linux – EXT4上的时间戳精度(亚毫秒)
- linux – Ufnt服务器上的ufw日志在哪里?
- mysql – 使用params在bash中执行.sql文件
- linux – 为什么将’script’重定向到/ dev / nu
- 窗口放置:类似WinSplit Revolution的Linux应用程
- linux – GNU Autotools:将二进制文件安装到/ b
- LINUX入门:Linux多网卡绑定聚合-bond技术
- sed rare-delimiter(除了| /?…)
- linux – CVS Diff只输出修改过的文件?