作者jianiau (jianiau)
看板LinuxDev
标题[问题] 请问能不能查询link时连到哪个档案
时间Tue Aug 19 23:55:39 2014
各位好
我在编译一个给tcl 用的extension 遇到getopt 这个function的问题
再多次呼叫getopt後
snmp_set -v1 -cpublic 10.10.160.10 \
docsIf3CmtsSignalQualityExtExpectedRxSignalPower.5000092 i -50
最後一个参数 "-50" 会被当成是一个参数,出现错误讯息
invalid option -- '5'
试过几个方法
1. 第二次使用getopt时 设定optind = 0
这样反而过了
2. 由於1.的方式很怪,所以在getopt.c里加了一堆printf想看哪边出错
但是执行後完全没东西输出,似乎不是连结到我改的那一只程式
用readelf -s 读档会显示
435: 000000000003bce0 711 FUNC GLOBAL DEFAULT 11 getopt
如果编译时刻意排除getopt.o则结果是
109: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getopt@GLIBC_2.2.5 (2)
3.由於2.的结果我怀疑是我编译参数不对,最後直接把getopt另取名子都改成mgetopt
用同样的档案和参数重新编译,这次就真的是呼叫我改过的mgetopt,而且初始化时
optind=1 可以得到期望值
这时readelf -s 的结果是
108: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getopt@GLIBC_2.2.5 (2)
1058: 000000000003bd30 711 FUNC GLOBAL DEFAULT 11 mgetopt
请问有肥有方法可以看出我到底连结到哪里去了,或是有其他方式可以debug
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.228.248.25
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1408463761.A.AFA.html
1F:→ spoil95732: LL 10/10 15:50