ϵͳÊÇfreebsd4.11 kldÖгöÏÖ¿ÕÖ¸ÕëÖ®ÀàµÄÒì³£µ¼ÖÂÄں˱ÀÀ£,Éú³ÉÁËcoredump,ʹÓÃgdbµ÷ÊÔ,btÃüÁî²é¿´Õ»ÐÅÏ¢,²¿·Ösymbol¶ÁÈ¡²»µ½,ʹÓÃadd-symbol-file¼ÓÔØÒÔºóÈÔÈ»ÎÞ·¨²é¿´. Óû§Ì¬³ÌÐòÓÃadd-symbol-file¼ÓÔØÒÔºó¾Í¿ÉÒԲ鿴ÁË. ²»ÖªµÀkldÄ£¿éΪʲô²»ÐÐ.¼ÓÔØÃüÁîÈçÏÂ: add-symbol-file xxx/xxx/xxx.ko text¶ÎÆðʼµØÖ· text¶ÎÆðʼµØÖ·ÊÇ objdump -h xxx.ko | grep text µÃµ½µÄ.ÈçÏÂËùʾ,È¡µÚ4¸ö×Ö½Ú00006e28. 8 .text 0000c...
»·¾³£ºFreeBSD 5.1 kld£¨¶¯Ì¬ÄÚºËÁ´½ÓÆ÷£©£¬ËüÊÇLKM£¨¿É¼ÓÔØÄÚºËÄ£¿é£©ÔÚFreeBSD 3.0°æÒÔºóµÄÄں˿ɼÓÔØ½Ó¿Ú·½ÃæµÄÌæ´úÆ· £¬Òò´ËËü¾ß±¸ÁË¡°Ç°±²¡±ÃǵÄÓŵ㣺ÔÊÐíϵͳ¹ÜÀíÔ±ÔÚϵͳÕý³£¹¤×÷µÄÇé¿ö϶¯Ì¬¼ÓÔØ»ò²ðжijЩģ¿é£¬Í¨¹ýÕâ ÖÖÄÜÁ¦¿ÉÒÔʹÈí¼þ¿ª·¢Õß²»ÐèÒªÔÚ²»Í£ÖØÆô»úÆ÷µÄÇé¿öϲâÊÔеÄÄÚºËÄ£¿é¡£ ¸÷ÖÖÀàÐ͵ÄÄ£¿é¶¼¿ÉÒÔͨ¹ýÕâÖÖ·½·¨ÔØÈëϵͳ¡£ËüÃǰüÀ¨£ºÎļþϵͳ£¬ÆÁÄ»±£»¤³ÌÐò¡¢ÏµÍ³Á´½Ó¿âµÈµÈ¡£Õâ ЩkldÄ£¿éͨ³£...
An example of FreeBSD kld programming. It outlines how to create/use the dependences between modules. To test it. [root@~]# make install [root@~]# kldload dephello [root@~]# kldunload dephello Îļþ:hello.tar.gz ´óС:1KB ÏÂÔØ: ÏÂÔØ ±¾ÎÄÀ´×ÔChinaUnix²©¿Í£¬Èç¹û²é¿´ÔÎÄÇëµã£ºhttp://blog.chinaunix.net/u/10543/showart_280976.html
ÎÒдÁ˸ö¼òµ¥µÄcharacter devices µÄ³ÌÐò£¬ioctlʱ×ÜÊdzö´í£¡Ï£Íû´ó¼Ò¸ø¿´¿´ÄÄÀï´íÁË£¡
#include
1.Ê×ÏÈ´Óhello world¿ªÊ¼
[code]
#include
ÔÎijö´¦£ºhttp://bbs3.chinaunix.net/thread-763812-1-1.html 1.Ê×ÏÈ´Óhello world¿ªÊ¼ [Copy to clipboard] [ - ] CODE:#include #include #include #include #include #include static int hello_load(module_t md, int cmd, void* arg) { int err = 0; switch(cmd){ case MOD_LOAD: printf("hello world!\n"); break; case MOD_UNLOAD: ...
¿´ÁËÓêË¿·çƬ ǰ±²Ð´µÄ Ò»¸öÓÃkldÌæ»»Äں˺¯ÊýÖ¸ÕëµÄÀý×Ó http://bbs.chinaunix.net/viewthread.php?tid=768019 Àï±ßÌáµ½£ºold_icmp_input = inetsw[ip_protox[IPPROTO_ICMP]].pr_input; Õâ¾äÊÇÖ¸½«ÔÀ´³ÌÐòµÄicmpÏà¹Ø½Ó¿Ú¸³¸øÒ»¸ö±äÁ¿£¬ºóÀ´ÎÒÔÚ\usr\src\sys\netinet\in_proto.cÕÒµ½ÁËÕâ¸öÊý×飬 ²»¹ý·¢ÏÖ£¬Ö»Óе½±¾»úµÄ°ü²Å»áµ÷ÓÃÕâЩÊý×éÖеÄÄ£¿é£¬×ª·¢µÄ¾Í²»»áµ÷Óã¬ÒªÄÜÈÃת·¢µÄ°üÒ²Äܱ»´¦Àíµ½µÄÄ£ ¿éÓ¦¸Ãµ½ÄÄÀïÈ¥ÕÒÄØ£¿ Ïà...
Èç¹ûÒªipfºÍipfwͬʱʹÓã¬ÇмÇÒª½«ipf±àÒëµ½ÄÚºËÀïÃæ£¬È»ºóÔÙkld ipfw¡£Èç¹û½«Á½Õß¶¼±àÒë½øÄں˻ᵼÖÂϵͳÆô¶¯µÄʱºò¿¨ÔÚÒ»¸ö¼ì²âÍøÂç½Ó¿ÚµÄµØ·½¡£