可以使用 c++filt 将解构后的名称写回 .s 文件本身吗?
Posted
技术标签:
【中文标题】可以使用 c++filt 将解构后的名称写回 .s 文件本身吗?【英文标题】:can c++filt be used to write the demangled name back in the .s file itself? 【发布时间】:2012-03-03 18:52:48 【问题描述】:我只是想学习 c++filt,网上没有足够的示例用法......
我正在编写一个 main.cpp 文件并尝试读取机器代码....
g++ -S main.cpp -> gives me main.s
如果我需要找出解组后的值,我可以使用
g++ -S main.cpp | c++filt <demangled name>
例如)
g++ -S main.cpp | c++filt _Z3gooi
给我值goo(int i)//这是签名,
有没有一种方法,可以将当前的 main.s 文件替换为解组后的值,例如,_Z3gooi
将在文件本身中解组为 goo(int i),而不是控制台....? ???
【问题讨论】:
管道应该做什么? 管道输出 main.s.......所以 c++filt 将其作为输入并在右侧找到损坏的名称并给出损坏的名称..... @howtechstuffworks 但是 g++ 不会向标准输出写入任何内容,因此 c++filt 什么也看不到。 我猜,c++filt直接从文件夹中取出一个汇编文件.... 我只是做了 c++filt 文件名......它给了我价值......虽然神秘 【参考方案1】:可以在
C++filt<main.s>temp.s
【讨论】:
【参考方案2】:否,因为解构后的名称通常作为符号名称无效。
【讨论】:
以上是关于可以使用 c++filt 将解构后的名称写回 .s 文件本身吗?的主要内容,如果未能解决你的问题,请参考以下文章