如何通过plan9port db(1)unility从其可执行文件中获取源文件名?

时间:2016-12-20 09:13:25

标签: plan-9

转到from email_message import EmailMessaging message = EmailMessaging("this is the subject", "this is the body”, "sender@abc.com", ["myemailaddress@abc.com”]) utilites我无法使用plan9port实用程序来处理可执行文件(对于脚本,它可以正常工作)。它引用src以下列方式从可执行文件中获取源文件名:

db(1)

其中% echo 'main?z' | db $1 | <some staff> 是可执行程序名称,$1main?z调试器使用函数db(1)打印文件名的特殊指令。

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

我尝试使用main()进行编译(我认为9c -n会阻止编译器剥离代码)而没有运气。

1 个答案:

答案 0 :(得分:0)

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