【问题标题】:How to get source file name from its executable via plan9port db(1) unility?如何通过plan9port db(1)统一从其可执行文件中获取源文件名?
【发布时间】:2017-05-05 10:44:19
【问题描述】:

移至plan9port 实用程序我无法将src 实用程序用于可执行文件(对于脚本它可以正常工作)。它引用db(1) 以通过以下方式从可执行文件中获取源文件名:

% echo 'main?z' | db $1 | <some staff>

其中$1 是可执行程序名称,main?zdb(1) 调试器使用函数main 打印文件名的特殊指令。

但在我的 linux (Ubuntu) 版本中,它不起作用。 db(1) 不生成文件名,- 它只是打印过程的名称:main() 并且没有源信息。

我尝试使用9c -n 进行编译(我认为-n 会阻止编译器剥离代码),但没有成功。

【问题讨论】:

标签: plan-9


【解决方案1】:

DWARF-2 是关键:

$ 9c -gdwarf-2 wc.c -o wc.o
$ 9l wc.o -o wc
$ echo 'p9main?z' | db wc
wc: linux 386 executable
no dt_debug section
p9main?                 p9main() /home/egor/plan9port/src/cmd/wc.c:21

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    相关资源
    最近更新 更多