19. ¿À·ù ¼öÁ¤ ¹æ¹ý(Debugging hints)
»ç¿ë ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇÒ ¶§ µå´Â ½Ã°£ÀÇ 90%´Â ¿À·ù¸¦ ¼öÁ¤ÇÏ°í °Ë»çÇϴµ¥ µé¾î°£´Ù. µû¶ó¼ óÀ½¿¡ code¸¦ Àß ¾²´Â °ÍÀÌ ¾ó¸¶³ Áß¿äÇÑÁö ¾Ë ¼ö ÀÖ´Ù.
±×·¯³ª ¿©ÀüÈ÷ ¿©±âÀú±â¼ ¿À·ù bugs¸¦ º¼ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ÀÌ ¿À·ù¸¦ ¾Ë¾Æ³»´Â ¹æ¹ýÀÌ´Ù.
¾µ¸¸ÇÑ compilerÀÇ ¼±Åà »ç¾ç (Useful compiler options)
´ëºÎºÐÀÇ Fortran compiler¿¡´Â ¿øÇÒ ¶§ ÀÛµ¿Çϵµ·ÏÇÒ ¼ö ÀÖ´Â ¼±Åà »ç¾ç µéÀÌ ÀÖ´Ù. ´ÙÀ½Àº Sun Fortran 77 compilerÀÇ compiler ¼±Åà »ç¾çÀÌÁö¸¸ ´ëºÎºÐÀÇ compiler¿¡ (±ÛÀÚ´Â ´Ù¸£´õ¶óµµ)ºñ½ÁÇÑ ¼±Åà »ç¾çÀÌ ÀÖ´Ù.
- -ansi
- ÇÁ·Î±×·¥ Áß¿¡ Ç¥ÁØ Fortran 77 È®Àå¾ÈÀÌ ¾Æ´Ñ °ÍÀÌ ÀÖÀ¸¸é °æ°íÇÑ´Ù.
- -u
- type¿¡ °üÇÑ implicit ±ÔÄ¢À» ¹«½ÃÇÏ°í ¸ðµç º¯¼ö¸¦ Ãʱ⿡ ¼±¾ðÇÏÁö ¾ÊÀº °ÍÀ¸·Î °£ÁÖÇÑ´Ù. compiler¿¡ ÀÌ·± ¼±Åà »ç¾çÀÌ ¾ø´Ù¸é ´ÙÀ½°ú °°Àº ¼±¾ðÀ» °¢ (ºÎ)ÇÁ·Î±×·¥ÀÇ Ã³À½¿¡ ´õÇÏ¸é °°Àº È¿°ú¸¦ º¼ ¼ö ÀÖ´Ù.
implicit none (a-z)
- -C
- ¹è¿ÀÇ ³¡À» È®ÀÎÇÑ´Ù. ¹è¿ ¹Ù±ùÀÇ ¿ø¼Ò¸¦ »ç¿ëÇÏ°íÀÚ ÇÒ ¶§ À̸¦ ¾Ë¾Æ³½´Ù. ±×·¯³ª ¸ðµç À߸øÀ» ¾Ë¾Æ ³¾ ¼ö´Â ¾ø´Ù.
ÈçÇÑ ½Ç¼ö(Some common errors)
´ÙÀ½Àº ÈçÈ÷ º¼ ¼ö ÀÖ´Â À߸øµéÀÌ´Ù.
- ÇÑ ÁÙÀº 72 ¹ø° ľȿ¡ Àû¾î¾ß ÇÑ´Ù. ³ª¸ÓÁö´Â ¹«½ÃµÈ´Ù!
- ºÎÇÁ·Î±×·¥À» ºÎ¸£´Â Ãø°ú ºÎ ÇÁ·Î±×·¥ ¾çÂÊÀÇ parameter ¸ñ·ÏÀÌ ÀÏÄ¡Çϴ°¡?
- common blockÀÌ ÀÏÄ¡Çϴ°¡?
- ½Ç¼ö ³ª´°¼ÀÀ» ÇÏ¿©¾ß ÇÏ´Â °÷¿¡¼ Á¤¼ö ³ª´©¼ÀÀ» ÇÏÁö ¾Ê´Â°¡?
¿À·ù ¼öÁ¤ µµ±¸(Debugging tools)
¿À·ù°¡ ÀÖ´Ù¸é ¾î´À °÷ÀÎÁö ¾Ë¾Æ¾ß ÇÑ´Ù. ¹®¹ø ¿À·ù´Â ½±°Ô ãÀ» ¼ö ÀÖ´Ù. ¹®Á¦´Â ½ÇÁ¦ ÇÁ·Î±×·¥ ¼öÇà½Ã ¿À·ù(run-time error)ÀÌ´Ù. ¿À·ù¸¦ ã´Â ±¸½Ä ¹æ¹ýÀº code¿¡ write ¹®À» ´õÇÏ¿© º¯¼öÀÇ °ªÀ» ÃßÀûÇÏ´Â °ÍÀÌ´Ù. ÇÁ·Î±×·¥À» ¾à°£ ¹Ù²Ü ¶§¸¶´Ù »õ·Î compileÇÏ¿©¾ß Çϱ⿡ Áö°Ü¿î ÀÏÀÌ´Ù. ¿À´Ã³¯¿¡´Â Ưº°ÇÑ ¿À·ù ¼öÁ¤ ÇÁ·Î±×·¥ debuggers¸¦ »ç¿ëÇÒ ¼ö Àִµ¥ ÀÌ´Â Æí¸®ÇÑ µµ±¸ÀÌ´Ù. ÇÁ·Î±×·¥À» ÇÑ ÁÙ ÇÑ ÁÙ ¼öÇà½ÃÅ°°Å³ª Á¤ÁöÁ¡(break point)¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ°í ÁöÄÑ º¸°íÀÚÇÏ´Â º¯¼öÀÇ °ªÀ» ºñÃç º¸´Âµî ¿©·¯ °¡Áö¸¦ ÇÒ ¼ö ÀÖ´Ù.
[Fortran Tutorial]
Ãæ³²´ëÇб³ ¹°¸®Çаú ¿À º´¼º