这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教对符号表熟悉的高人

共5条 1/1 1 跳转至

请教对符号表熟悉的高人

菜鸟
2003-08-26 00:58:49     打赏
请问如何从符号表中找到一个对象的id所对应的名称? 比如说函数XoneAlpha的id值为0x1234ab,用什么函数可以根据0x1234ab返回字符串“XoneAlpha”?



关键词: 请教     符号     熟悉     高人    

菜鸟
2003-10-24 19:12:00     打赏
2楼
我参考usrLib.c写了个函数可以根据地址反查函数名的函数。 #include "stdio.h" #include "symbol.h" #include "symLib.h" #include "sysSymTbl.h" LOCAL char *typeName [] = { "????", "abs", "text", "data", "bss", }; void symPrint(unsigned int addr) { char name[100]; int value = 0; SYM_TYPE type; symFindByValue(sysSymTbl, addr, name, &value, &type); printf("addr = %#x\n", addr); printf("%#x %s %s", value, name, typeName[(type >> 1) & 7]); if ((type & 1) == 0) printf (" (local)"); printf("\n"); } 当输入的地址不对应任何一个函数时,返回上一个最靠近的函数名。

菜鸟
2003-10-24 19:14:00     打赏
3楼
-> pim_print_timer id Time Addr Next Handler Data ------ ---- ---------- ---------- ----------------------------------- ---------- 36 5 0x748a3a8 0xfbad4f0 pim_polling 0 28 90 0xfbad4f0 0x748a420 igmpSendQuery 0x62055e0 29 0 0x748a420 0 igmpSendQuery 0x748a440 有时利用这种反查的功能,对调试起到很大的帮助。

菜鸟
2003-10-24 19:14:00     打赏
4楼
如bluesky所说,shell提供这样的功能

菜鸟
2003-10-24 19:19:00     打赏
5楼
咦,奇怪,shell下果然是自己把函数名打出来了,我以前怎么没试出来??

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]