Linux ûÓж¨ÒåµÄ·ûºÅ µ÷ÊÔ·½·¨ nmÃüÁî
nmÃüÁî
[
ÔÚGNU CÓïÑÔ¿âÌṩµÄÄÚÈÝÖУ¬ÓнӿڿÉÒÔÓÃÀ´×öÕâ¼þÊ¡£ÓÃÏÂÃæµÄÃüÁî²é¿´£º
nm -D /lib/libc.so.6 | grep log
]
nmÃüÁÊDZȽϼòµ¥¶øÇÒÇ¿´óµÄ¡£ËüÓÃÀ´ÁгöÒ»¸öÄ¿±êÎļþÖеĸ÷ÖÖ·ûºÅ¡£·ûºÅµÄÖÖÀàºÜ¶à£¬ÒÔÏÂÊÇһЩ³£¼ûµÄ·ûºÅÀàÐÍ
nmÊä³ö×Ö·û
º¬Òå
R
Read only symbol. ±ÈÈçÔÚ´úÂëÖÐÓÐÒ»¸öconst MAXDATA = 3095; ÔòMAXDATA¾ÍÊÇÒ»¸öRead only symbol
N
ÕâÊÇÒ»¸öµ÷ÊÔ·ûºÅ
D
ÕâÊÇÒ»¸öÒѾ³õʼ»¯µÄ±äÁ¿µÄ·ûºÅ¡£±ÈÈç´úÂëÖÐint i = 1ºÍchar *str = "Hello"ÔòiºÍstr¶¼ÊÇÕâÖÖÀàÐ͵ķûºÅ
T
Text¶ÎµÄ·ûºÅ¡£×Ó³ÌÐò¶¼ÊÇÕâÖÖ·ûºÅ£¬±ÈÈçÎļþÖÐʵÏÖÁËÒ»¸öº¯Êýfunction£¬Ôòfunction¾ÍÊÇÕâÖÖ·ûºÅ
U
䶨ÒåµÄ·ûºÅ¡£Èç¹ûÎļþÖÐÒýÓÃÁ˲»´æÔڵĺ¯Êý£¬ÔòÕâЩ䶨ÒåµÄº¯Êý·ûºÅ¾ÍÊÇÕâÖÖÀàÐÍ
S
δ³õʼ»¯µÄ·ûºÅ£¬±ÈÈçÈ«¾Ö±äÁ¿int s;ÔòsµÄ·ûºÅ¾ÍÊÇ´ËÀàÐÍ
nmÃüÁîµÄÏêϸÓ÷¨ÒÔ¼°Àý×Ó¼ûÕýÎÄ¡£
ÏÈÀ´Àý×Ó£¬ÒÔÏÂÊÇa.cµÄÄÚÈÝ£º
#include <stdio.h>
static int s_global;
int i = 1;
char *str = "hello, world";
const ID = 10;
extern int e_global;
void function()
{
printf("Hello");
}
int get_x()
{
int x;
x = 33;
return x;
}
ÔÚÖ´ÐÐ"gcc -g -O -c a.c"²úÉúa.oÖ®ºó£¬ÓÃ"nm -A a.o"µÄÊä³öΪ£º
a.o:00000000 R ID
a.o:00000000 T function
a.o:00000014 T get_x
a.o:00000000 D i
a.o: U printf
a.o:00000000 b s_global
a.o:00000004 D str
nmµÄÓ÷¨
nmµÄÓ÷¨ºÜ¼òµ¥£¬ÒÔϼ¸¸ö¹Ø¼ü×ֱȽϳ£Óãº
1¡¢"-A"£¬Áгö·ûºÅÃûµÄʱºòͬʱÏÔʾÀ´×ÔÓÚÄĸöÎļþ¡£
ÕâÔÚͬʱÁгö¶à¸öÎļþ£¨±ÈÈçÒ»¸öÁ´½Ó¿â£©µÄ·ûºÅʱ±È½ÏÓÐÓÃ
2¡¢"-a"£¬ÁгöËùÓзûºÅ
Õ⽫»á°Ñµ÷ÊÔ·ûºÅÒ²ÁгöÀ´¡£Ä¬ÈÏ״̬ϵ÷ÊÔ·ûºÅ²»»á±»Áгö¡£
3¡¢"-l"£¬Áгö·ûºÅÔÚÔ´´úÂëÖжÔÓ¦µÄÐкÅ
Ö¸¶¨Õâ¸ö²ÎÊýºó£¬nm½«ÀûÓõ÷ÊÔÐÅÏ¢ÕÒ³öÎļþÃûÒÔ¼°·ûºÅµÄÐкš£¶ÔÓÚÒ»¸öÒѶ¨Òå·ûºÅ£¬½«»áÕÒ³öÕâ¸ö·ûºÅ¶¨ÒåµÄÐкţ¬¶ÔÓÚ䶨Òå·ûºÅ,ÏÔʾΪ¿Õ
4¡¢"-n"£¬¸ù¾Ý·ûºÅµÄµØÖ·À´ÅÅÐò
ĬÈÏÊǰ´·ûºÅÃû³ÆµÄ×Öĸ˳ÐòÅÅÐòµÄ
5¡¢"-u"£¬Ö»Á
Ïà¹ØÎĵµ£º
Book Note: Linux Device Driver Dos and Don'ts
http://janitor.kernelnewbies.org/docs/driver-howto.html
what a hardened (robust) device
driver should mean and how it should be implemented and measured.
1.3 Robust device drivers
-Follows the Linux CodingStyle.
-Efficient in managing faults and ha ......
¾¹ýÉÏÊöµÄ¼¸¸ö²½Öè¡£µÚÒ»¸öÄ¿±ê£¬´úÂëÄܹ»±àÒëͨ¹ý»ù±¾ÉÏÊDz»»áÓÐʲôÎÊÌâµÄ¡£Ö»Òª°ÑÎպöþ¸öÐ޸ĴúÂëµÄ»ù±¾ÔÔò£¬µÚÒ»¡£ÒýÈëеĴúÂ룬¶ø²»ÐÞ¸ÄÔÓеĴúÂë¡£ÔÚûÓа취½øÐе÷ÊÔǰÐÞ¸ÄÔ´´úÂëÊDz»ÔÊÐíµÄ£¬Ð޸ĵIJ»ºÃ¾Í»áÒýÆð×îºó´úÂëÔËÐÐÂß¼µÄ»ìÂÒ£¬¶øÇÒÔÚ´úÂëÄܹ»ÔËÐÐ֮ǰÊǺÜÄÑ·¢ÏÖÎÊÌâµÄ¡£ËùÒÔ³ý·Ç·Ç³£ÓаÑÎÕ£¬·ñÔò²»Òª ......
££¿×½¨¾ü(Kongove.CN)
2008.11.12
Ê×ÏÈ£¬ÈÃÎÒÃÇÀ´¿´¼¸×éÁîÈËÕñ·ÜµÄÊý¾Ý¡£ÏÖÔÚ¶©ÔÄLinuxÄÚºËÓʼþÁбí[1]£¬Ã¿ÌìµÄÓʼþÁ÷Á¿´ó¸ÅÔÚ500·Ý×óÓÒ£»Ö´ÐÐ"grep "^P:"
MAINTAINERS |sort -u|wc
-l"£¬¶ÔÄÚºË×Óϵͳά»¤Õß½øÐÐͳ¼Æ£¬µÃµ½µÄ½á¹ûÊÇ534ÈË£»´Ó2007µ½2008Ä꣬ƽ¾ùÿÌìÓÐ4300ÐдúÂëÌí¼Óµ½Äںˣ¬ÓÐ180 ......
ÒýÓãºhttp://blog.chinaunix.net/u/12207/showart_2061214.html
¹ØÓÚ2.6.31Óöµ½µÄÎÊÌâ
´íÎóÌáʾ1£º
drivers/built-in.o(.init.text+0x3bad): In function `con_init':
include/trace/events/kmem.h:47: undefined reference to `.L1452'
½â¾ö£º
vi /usr/src/linux/drivers/char/vt.c ÕÒµ½static int __init con_init ......
ʹÓÃselectº¯Êý¿ÉÒÔÒÔ·Ç×èÈûµÄ·½Ê½ºÍ¶à¸ösocketͨÐÅ¡£³ÌÐòÖ»ÊÇÑÝʾselectº¯ÊýµÄʹÓ㬹¦Äܷdz£¼òµ¥£¬¼´Ê¹Ä³¸öÁ¬½Ó¹Ø±ÕÒÔºóÒ²²»»áÐ޸ĵ±Ç°Á¬½ÓÊý£¬Á¬½ÓÊý´ïµ½×î´óÖµºó»áÖÕÖ¹³ÌÐò¡£
1. ³ÌÐòʹÓÃÁËÒ»¸öÊý×éfd_A£¬Í¨ÐÅ¿ªÊ¼ºó°ÑÐèҪͨÐŵĶà¸ösocketÃèÊö·û¶¼·ÅÈë´ËÊý×é¡£
2. Ê×ÏÈÉú³ÉÒ»¸ö½Ðsock_fdµÄsocketÃèÊö·û£¬ÓÃÓÚ¼àÌý¶Ë¿ ......