Ò»ÖÖ¶¨Î»ÄÚ´æÐ¹Â¶µÄ·½·¨£¨Linux£©
Ä¿µÄ£º
±¾ÎÄÊÇ¡¶Ò»ÖÖ¶¨Î»ÄÚ´æÐ¹Â¶µÄ·½·¨£¨Solaris£©¡·¶ÔÓ¦µÄLinux°æ±¾£¬µ÷ÊÔÆ÷ʹÓÃgdb¡£Ö÷Òª½éÉÜʵÀý²¿·Ö¡£ÆäËûÇë¼û¡¶Ò»ÖÖ¶¨Î»ÄÚ´æÐ¹Â¶µÄ·½·¨£¨Solaris£©¡·¡£
ʵÀý£º
Ä£Äânewʧ°ÜµÄ³ÌÐò£º
#include <stdexcept>
class ABC
{
public:
virtual ~ABC(){}
int i;
int j;
};
void f()
{
for (int i = 0; i < 1000; ++i)
{
ABC* p = new ABC;
}
throw std::bad_alloc();
}
int main()
{
f();
return 0;
}
1£© ±àÒëÔËÐд˶δúÂë¡£²úÉúÒ»¸öcoreÎļþ
2£© ÓÃgdb´ò¿ªÕâ¸öcoreÎļþ£º
gdb a.out core
(gdb) run
Starting program: /test/new_fail/a.out
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Program received signal SIGABRT, Aborted.
0x00007ffff733f645 in raise () from /lib64/libc.so.6
(gdb) info proc
process 10683
cmdline = '/test/new_fail/a.out'
cwd = '/test/new_fail'
exe = '/test/new_fail/a.out'
(gdb) shell pmap 10683
10683: a.out
START SIZE RSS PSS DIRTY SWAP PERM MAPPING
0000000000400000 4K 4K 4K 0K 0K r-xp /test/new_fail/a.out
0000000000600000 4K 4K 4K 4K 0K r--
Ïà¹ØÎĵµ£º
¹²ÏíÄÚ´æ:
ʹÓù²ÏíÄÚ´æºÍʹÓÃmalloc()À´·ÖÅäÄÚ´æÇøÓòºÜÏàËÆ¡£Ê¹Óù²ÏíÄÚ´æµÄ·½·¨ÊÇ£º
1 ¶ÔÒ»¸ö½ø³Ì/Ïß³ÌʹÓÃshmget()·ÖÅäÄÚ´æÇøÓò¡£
2 ʹÓÃshmat()·ÅÖÃÒ»¸ö»ò¶à¸ö½ø³Ì/Ïß³ÌÔÚ¹²ÏíÄÚ´æÖУ¬Ò²¿ÉÒÔÓÃshmctl()À´»ñÈ¡ÐÅÏ¢»òÕß¿ØÖƹ²ÏíÇøÓò¡£
3 ʹÓÃshmdt()´Ó¹²Ïí ......
#!/bin/sh ÊÇ˵Ã÷¸Ã½Å±¾µ÷ÓõÄshellµÄÀàÐÍ
#chkconfig: 2345 80 05 ÆäÖÐ2345ÊÇÖ¸Ã÷·þÎñµÄÔËÐеȼ¶£¬80±íÃ÷ÊÇϵͳÆô¶¯Ê±ÒªÆô¶¯µÚ80ºÅ·þÎñ£¨·þÎñºÅ¿ÉÒÔÖØ¸´£©¡£05±íÃ÷ÊÇϵͳ¹Ø±ÕҪֹͣµÄ·þÎñºÅ¡£
#descrīption: service ÕâÀïµÄserviceÄã¿ÉÒÔËæ±ãÌí£¬µ«±ØÐëÓÐ
case $1 in ÕâÀïµÄcaseÊǸöÑ¡ÔñÓ ......
ʹÓÃdfºÍduÃüÁîÀ´¼à¿ØÎļþϵͳµÄÓÐЧ¿Õ¼äµÄ´óС
ͨ¹ýÇå³ý²»ÓõÄÎļþºÍcoreÎļþÀ´ÇåÀíÎļþϵͳ¿Õ¼ä
ͨ¹ýÐÞ¼ôÈÕÖ¾ÎļþÀ´ÇåÀí/varÎļþϵͳ
´ÓÃüÁîÐÐÀ©Õ¹Ò»¸ö¾í×é
´ÓÃüÁîÐÐÀ©Õ¹Ò»¸öÂß¼¾í
´ÓÃüÁîÐÐÀ©Õ¹Ò»¸öÎļþϵͳ
1.¼à¿Ø´ÅÅÌʹÓÃÇé¿ö
ʹÓÃdf ÃüÁî¼ì²éÎļþϵͳµÄÓÐЧ¿Õ¼ä¡£
# df -k
Filesystem kbytes used avai ......
chmod £»ÐÞ¸ÄĿ¼ȨÏÞ
eg£ºchmod o-t /tmp
touch:´´½¨ÐÂÎļþ
rm -rf:ɾ³ýÎļþ
set gid ¶ÔĿ¼µÄ×÷ÓÃ
1£ºÄ¬ÈÏÇé¿öÏ£¬Óû§½¨Á¢µÄÎļþÊôÓÚÓû§µ±Ç°ËùÔÚµÄ×é
2£ºÄ¿Â¼ÉÏÉèÖÃÁËsetgid£¬±íʾÔÚ´ËĿ¼ÖУ¬ÈκÎÈ˽¨Á¢µÄÎļþ£¬¶¼»áÊôÓÚĿ¼ËùÊôµÄ×é¡£
rm -rf test //ɾ³ý֮ǰµÄtestĿ¼
mkdir test // ÔÚµ±Ç°Ä¿Â¼´´½¨Ò ......
CÓïÑÔÖеijéÏóº¯Êý¶¨ÒåÒ²¾ÍÊÇʹÓÃÁ˺¯ÊýÖ¸Õ룬ÕâÀïÓÃsignalº¯Êý½âÊÍһϳéÏóº¯Êý¶¨ÒåµÄº¬ÒåºÍ¹æÔò¡£
signalº¯Êý¶¨ÒåΪ£º
void ( * signal (int signum , void (*handler)(int) ) )(int);
¿ÉÒÔÕâÑù¶¨Òå
typedef void(* handler) (int)
handler signal(int signum,handler) ......