ÆÄ¿ï ¼øÀ§ ¹× ¿ä¾à
- °Ô½ÃÀÚ À̸§:
- Victor Stinner
ÆÄ¿ï ű×
ÆÄ¿ï ¼³¸í
ÆÄÀ̽㠹é Æ®·¹À̽º¸¦ »ç°í¿¡ Ç¥½ÃÇϽʽÿÀ Faulthandler´Â SIGSEGV, SIGFPE, Sigbus ¹× SIGILL ½ÅÈ£ÀÇ ¸ðµâÀ̸ç Python Backtrace¸¦ Ç¥½ÃÇÏ°í ÀÌÀü Çڵ鷯¸¦ º¹¿øÇÕ´Ï´Ù. ÀÌ Çڵ鷯¿¡ ´ëÇÑ ´ëü ½ºÅÃÀ» ÇÒ´çÇϽʽÿÀ. SigaltStack ()À» »ç¿ëÇÒ ¼öÀÖ´Â °æ¿ì, ½ºÅÿ¡ ¸Þ¸ð¸®¸¦ overflow¿¡ ÄÑ°í ¸ðµâÀ» overport¿¡¼ ¦¼ö¸¦ ÇÒ ¼ö ÀÖ°í faulthandler.enable ()À» È£ÃâÇÏ¿© python backtrace°¡ Ç¥ÁØ ¿À·ù ½ºÆ®¸²À¸·ÎµÇ¾îÀÖ´Â ÆÄÀÏ ¼³¸íÀÚ 2¿¡ ±â·ÏµË´Ï´Ù. Å͹̳ο¡¼ ±×·¡ÇÈ ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÃÀÛÇÏ°í Àü°æ¿¡¼ ¼¹ö¸¦ ½ÇÇàÇÏ¿© backtrace.website : https://github.com/haypo/faulthandler/wiki/example:4 asmple linux : python >>> °¡Á® ¿À±â Faulthandler >>> Faulthandler.enable () >>> Faulthandler.sigsegv () Ä¡¸íÀûÀÎ Python ¿À·ù : ºÐÇÒ FaultTraceBack (°¡Àå ÃÖ±ÙÀÇ ÅëÈ Ã¹ ¹ø°) : "", ¼¼±×¸ÕÅ×ÀÌ¼Ç °áÇÔ ¼³Ä¡ : Faulthandler ¸ðµâÀ» ¼³Ä¡ÇÏ·Á¸é, ´ÙÀ½ ¸í·ÉÀ» ÀÔ·ÂÇϽʽÿÀ. python setup.py install ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÏ¿© ¼³Á¤À» Å×½ºÆ® ÇÒ ¼ö ÀÖ½À´Ï´Ù. Python Tests.pyYou Faulthandler ¸ðµâÀ» ºôµåÇÏ·Á¸é C ÄÄÆÄÀÏ·¯ (¿¹ : GCC) ¹× ÆÄÀ̽ã Çì´õ°¡ ÇÊ¿äÇÕ´Ï´Ù. ¿¹. Fedora¿¡¼´Â Python-devel ÆÐÅ°Áö (sudo yum install python-devel)¸¦ ¼³Ä¡ÇؾßÇÕ´Ï´Ù. IsEnabled () : ¿À·ù 󸮱⸦ Å×½ºÆ®Çϱâ À§ÇØ ¿À·ù 󸮱âÀÇ »óŸ¦ °¡Á®¿É´Ï´Ù. * Sigbus () : Sigbus ½ÅÈ£ (¹ö½º ¿À·ù) * SIGFPE () : SIGFPE ½ÅÈ£ (ºÎµ¿ ¼Ò¼öÁ¡ ¿¹¿Ü) Àλó, Á¦·Î·Î ±¸ºÐ ¼öÇà * SIGILL () : SIGILL ½ÅÈ£¸¦ ¿Ã¸®½Ê½Ã¿À (ºÒ¹ý Áöħ) * SIGSEGV () : SIGSEGV ½ÅÈ£ (¼¼ºÐÈ ¿À·ù), NULL (ÁÖ¼Ò 0) SIGBUS () ¹× SIGILL ()¿¡¼ ÀÐÀº ¸Þ¸ð¸®¸¦ ¸ðµç ¿î¿µ ½Ã½ºÅÛ¿¡¼ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¹öÀüÀº "version"¼Ó¼º¿¡¼ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. "¹öÀü >> 8"À» »ç¿ëÇÏ¿© ÁÖ ¹öÀüÀ» °¡Á® ¿À±â À§ÇØ "¹öÀü ¹× 255"¸¦ »ç¿ëÇϽʽÿÀ. ¿ä±¸ »çÇ× : ¡¤ ÆÄÀ̽ã ÀÌ ¸±¸®½º¿¡¼´Â »õ·Î¿î ±â´É : ¡¤ µî·Ï () ¹× unregister () ÇÔ¼ö Ãß°¡ ¡¤ ¼±ÅÃÀû ALL_THREADS Àμö Ãß°¡ () ¡¤ ¹é Æ®·¹À̽º¸¦ 100 ½º·¹µå·Î Á¦ÇÑÇϽʽÿÀ ¡¤ ½ºÅà ¿À¹öÇ÷Π(had_sigaltstack Á¤ÀÇ)¿¡ ¹é Æ®·¹À̽º¸¦ Ç¥½Ã ÇÒ ¼ö ÀÖµµ·Ï Ä¡¸íÀûÀÎ ½ÅÈ£ Çڵ鷯¿¡ ´ëÇÑ ´ëü ½ºÅÃÀ» ÇÒ´çÇÕ´Ï´Ù. â¹®¿¡.
ÆÄ¿ï °ü·Ã ¼ÒÇÁÆ®¿þ¾î