|
Untitled Document
|
|
 |
> Áö¸é±â»ç > ±âȹ±â»ç |
|
 |
Guest Article
|
|
|
|
À©µµ¿ìÁî ÀÓº£µðµå À©µµ¿ìÁî ÀÓº£µðµå CE ÀͼÁ¼Ç ¿¡·¯ ÃßÀûÇϱâ |
| [
ÀÔ·Â : 2009-02-05 ¿ÀÈÄ 5:57:53 | Áö¸é¹ßÇà : 2009³â 2¿ùÈ£ 54ÂÊ ] |
|
À©µµ¿ìÁî ÀÓº£µðµå CE ÀͼÁ¼Ç ¿¡·¯ ÃßÀûÇϱâ´Â ÀÌ¹Ì ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®³ª ÇÊÀÚ°¡ ¼Ò¼ÓµÈ ȸ»ç¿¡¼ ÁÖÃÖÇÏ´Â ¼¼¹Ì³ª¿¡¼ ¹ßÇ¥ÇÑ ÀڷḦ À籸¼ºÇÑ °ÍÀÌ´Ù. ¼¼¹Ì³ª¸¦ ÅëÇØ ±â¼úÁ¤º¸¸¦ °øÀ¯ÇÏ´Â °ÍÀÌ °¡Àå ÁÁ¾Ò°ÚÁö¸¸ º» ÁÖÁ¦¿¡ °ü½É ÀÖ´Â °³¹ßÀÚ ºÐµé²² ¹Ì¾àÇϳª¸¶ µµ¿òÀÌ µÇ±æ ¹Ù¶õ´Ù.
±Û : ¼º¼öÇö ´ë¸® / ES »ç¾÷ºÎ SE ÆÀ
MDS Å×Å©³î·ÎÁö(ÁÖ) / www.mdstec.com
±¹³»ÀÇ ¸¹Àº µð¹ÙÀ̽º °³¹ß»çµéÀÌ ³»ºñ°ÔÀ̼Ç, PMP, DVR, ATM, IP ¼ÂÅé¹Ú½º, »ê¾÷¿ë PC °³¹ß¿¡ ÀÖ¾î À©µµ¿ìÁî ÀÓº£µðµå CE ¿î¿µÃ¼Á¦¸¦ Àû¿ëÇϰí ÀÖ´Ù. ±×¸®°í °³¹ßÀÚµéÀº ¸ðµÎ Á¦Ç°¿¡ ½ÉÇ÷À» ±â¿ï¿©¼ °³¹ßÀ» ÇÑ´Ù.
ÇÏÁö¸¸ Ãʱ⿡ Á¦Ç°À» °³¹ß ÇÒ ¶§´Â ¼ö¸¹Àº ¿À·ù·Î °í»ýÀ» Çϴµ¥ ±× Áß Á¦Ç° µ¿ÀÛ Áß¿¡ °©ÀÚ±â ÀͼÁ¼Ç(exception)ÀÌ ¹ß»ý ÇÒ °æ¿ì ±²ÀåÈ÷ ³°¨ÇÏ´Ù. ±×·¯³ª °í¸¿°Ôµµ À©µµ¿ìÁî ÀÓº£µðµå CE´Â µå¶óÀ̹ö³ª ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ÀͼÁ¼ÇÀÌ ¹ß»ý ÇßÀ» ¶§ ¿î¿µÃ¼Á¦ÀÇ ¾î´À ºÎºÐ¿¡¼ ¿À·ù°¡ ¹ß»ý Çß´ÂÁö Á¤º¸¸¦ º¸¿©ÁØ´Ù. Áö±ÝºÎÅÍ ¿À·ù°¡ ¹ß»ýÇÑ ÀͼÁ¼Ç Á¤º¸¸¦ °¡Áö°í ¾î´À ºÎºÐ¿¡¼ ¿À·ù°¡ ¹ß»ýÇß´ÂÁö ÃßÀûÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸°Ú´Ù.
¹°·Ð ÇöÀç ¼Ò°³ÇÏ´Â ¹æ¹ýÀ¸·Î ¸ðµç ÀͼÁ¼ÇÀ» ÃßÀûÇÒ ¼ö ÀÖ´Â °Ç ¾Æ´Ï´Ù. Á» ´õ ¼¼¹ÐÇϰí Á¤È®ÇÑ ÃßÀûÀ» À§Çؼ´Â º°µµÀÇ µð¹ö±ë Àåºñ°¡ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ¹Ì¸® ¹àÇôµÐ´Ù.
À©µµ¿ìÁî ÀÓº£µðµå CE ÀͼÁ¼Ç
ÀͼÁ¼ÇÀ̶õ? Á¤»óÀûÀÎ ÇÁ·Î±×·¥ µ¿ÀÛÀÌ ¿ÜºÎ ¿äûÀ̳ª ¿À·ù¿¡ ÀÇÇØ ±× 󸮰¡ Áß´ÜµÇ°í º°µµÀÇ Á¤ÀÇµÈ Ã³¸®¸¦ ÇØ¾ß ÇÏ´Â »óÅÂÀÌ´Ù. ±×·¯³ª ÇÏÀÌ·¹º§ °³¹ßÀÚ¿Í ·Î¿ì·¹º§ °³¹ßÀÚÀÇ »ý°¢ÀÌ ¾à°£Àº ´Ù¸¥ °Å °°´Ù. ÇÏÀÌ·¹º§ °³¹ßÀÚÀÇ °æ¿ì ÀͼÁ¼ÇÀº ¿À·ù¶ó°í »ý°¢À» Çϴµ¥ ¹ÝÇØ, ·Î¿ì·¹º§ °³¹ßÀÚ´Â ÀͼÁ¼ÇÀ» ÁÖ·Î ¸®¼Â, À߸øµÈ ¸í·É¾î ¼öÇà, abort, ±ÇÇÑÀÌ ¾ø´Â ¸Þ¸ð¸® Á¢±Ù, ÀÎÅÍ·´Æ® µîÀ» »ý°¢Çϱ⠶§¹®ÀÌ´Ù. ¿ì¸®´Â À©µµ¿ìÁî ÀÓº£µðµå CE À§¿¡¼ ¹ß»ýÇÏ´Â ÀͼÁ¼ÇÀ» »ý°¢Çϱ⠶§¹®¿¡ ÀͼÁ¼ÇÀº ¼ÒÇÁÆ®¿þ¾îÀûÀÎ ¿¡·¯¶ó°í ºÁµµ µÉ °Å °°´Ù.
À©µµ¿ìÁî ÀÓº£µðµå CE ÆÄÀÏ È®ÀåÀÚ
À©µµ¿ìÁî ÀÓº£µðµå CE¿¡¼ È®ÀåÀÚ¸¦ ¾Ë¸é ÀͼÁ¼Ç Äڵ带 ÃßÀûÇϴµ¥ µµ¿òÀÌ µÈ´Ù. Ç¥ 1À» Âü°í ¹Ù¶õ´Ù. ±×¸®°í ÀÌÁß ÀͼÁ¼Ç ¿À·ù Äڵ带 °¡Áö°í ÃßÀûÇϴµ¥ ÇÊ¿äÇÑ ÆÄÀÏ È®ÀåÀÚ´Â .MAP ÆÄÀϰú .COD ÆÄÀÏÀÌ´Ù.
¶ÇÇÑ Ç÷§Æû ºô´õ(Platform Builder)¿¡¼ ¼Ò½º¸¦ ÄÄÆÄÀÏÇϸé EXE, DLL ¶Ç´Â LIB°¡ »ý¼ºÀÌ µÇ´Âµ¥, µðÆúÆ®·Î PDB, MAP, REL ÆÄÀÏÀº ÇÔ²² »ý¼ºÀÌ µÈ´Ù.
.MAP ¹× COD ÆÄÀÏ »ý¼ºÇϱâ
½ÇÁ¦·Î ÀͼÁ¼Ç ¿À·ù Äڵ带 ÃßÀûÇϱâ À§Çؼ´Â .MAP°ú .COD ÆÄÀÏÀÌ ÇÊ¿äÇѵ¥ Ç÷§Æû ºô´õ¸¦ »ç¿ëÇØ¼ °³¹ß ÇßÀ» °æ¿ì¿¡´Â µðÆúÆ®·Î .MAP ÆÄÀÏÀº »ý¼ºÀÌ µÈ´Ù. ¶ÇÇÑ ºñÁê¾ó ½ºÆ©µð¿À(Visual Studio) 2005¸¦ ÀÌ¿ë ÇßÀ» °æ¿ì´Â ºñÁê¾ó ½ºÆ©µð¿À 2005 ¸Þ´º¿¡¼ Project | Properties ¼±ÅÃ, Property Pages¿¡¼ Configuration Properties-Linker-Debugging À» È®Àå ÈÄ Á¦³Ê·¹ÀÌÅÍ ¸Ê ÆÄÀÏ(Generate Map File) ¼³Á¤ °ªÀ» No¿¡¼ Yes(/MAP)·Î ±×¸² 1 °°ÀÌ º¯°æÀ» ÇØÁÖ¸é ºôµå ÈÄ .MAP ÆÄÀÏÀ» »ý¼º ÇÒ ¼ö ÀÖ´Ù.
¸¸¾à ºñÁê¾ó ½ºÆ©µð¿À 2005°¡ ¾Æ´Ñ ÀÓº£µðµå ºñÁê¾ó C++ 4.0À» ÀÌ¿ëÇÑ´Ù¸é eVC ¸Þ´º¿¡¼ Project | Settings¸¦ ¼±Åà ÈÄ LinkÀÇ Project Options¿¡ /MAP ¿É¼ÇÀ» ±×¸² 2ó·³ Ãß°¡ÇØ ÁÖ¸é µÈ´Ù.
COD ÆÄÀÏÀº ºñÁê¾ó ½ºÆ©µð¿À 2005, Ç÷§Æû ºô´õ, ÀÓº£µðµå ºñÁê¾ó C++ 4.0 ¸ðµÎ µðÆúÆ®·Î »ý¼ºÀÌ µÇÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î °¢°¢ÀÇ Åø¿¡ ¸Â°Ô ¼³Á¤À» ÇØ¾ß ÇÑ´Ù. ¸ÕÀú ºñÁê¾ó ½ºÆ©µð¿À 2005´Â ºñÁê¾ó ½ºÆ©µð¿À 2005 ¸Þ´º¿¡¼ Project | Properties ¼±ÅÃ, Property Pages¿¡¼ Configuration Properties-C/C++- Output FilesÀ» È®Àå ÈÄ Assembler OutputÀÇ ¼³Á¤À» No Listing¿¡¼ Assembley, Machine Code and Sources(FAcs)·Î ±×¸² 3°ú °°ÀÌ º¯°æÇÑ´Ù.
ÀÓº£µðµå ºñÁê¾ó C++ 4.0´Â eVC ¸Þ´º¿¡¼ Project | Settings¸¦ ¼±Åà ÈÄ C/C++ÀÇProject Options¿¡ /FAcs ¿É¼ÇÀ» ±×¸² 4ó·³ Ãß°¡ÇØ ÁÖ¸é µÈ´Ù.
Ç÷§Æû ºô´õÀÇ °æ¿ì¿¡´Â ÇØ´çÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ¶Ç´Â µå¶óÀ̹öÀÇ sources ÆÄÀÏ¿¡ WINCECOD = 1°ú °°Àº ¼³Á¤ °ªÀ» Ãß°¡Çϸé .COD ÆÄÀÏÀ» »ý¼º ÇÒ ¼ö ÀÖ´Ù.
ÀͼÁ¼Ç ¿¡·¯·Î ÃßÀûÇϱâ
¸ÕÀú ½ÇÁ¦·Î ÀͼÁ¼Ç ¿¡·¯¸¦ ¹ß»ý ÇÒ ¼ö ÀÖµµ·Ï ±×¸² 5¿Í °°ÀÌ ¾ÖÇø®ÄÉÀ̼ǿ¡ Ãß°¡ ÈÄ À©µµ¿ìÁî ÀÓº£µðµå CE OS°¡ Æ÷ÆÃ µÈ µð¹ÙÀ̽º¿¡¼ ½ÇÇàÀ» ½ÃÄѺ¸ÀÚ.
ÀÌ ÄÚµå´Â p¶ó´Â Æ÷ÀÎÅÍ¿¡ NULL °ªÀ» º¹»çÇÏ´Â ÄÚµå·Î ¹®¹ýÀûÀ¸·Î´Â ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. ÇÏÁö¸¸, ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸µ¿ÇÏ°Ô µÇ¸é stack overflow°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ÇöÀç´Â ÀçÇöÀ» À§Çؼ °Á¦·Î ¹ß»ýÇÏ°Ô ÇßÁö¸¸, ¸¸¾à ÇÁ·Î±×·¥ÀÌ ½ÇÇà Áß¿¡ ¹ß»ý Çß´Ù¸é µð¹ö±ëÇϱⰡ ¾î·Á¿ï °ÍÀÌ´Ù. ±×·¯³ª À©µµ¿ìÁî ÀÓº£µðµå CE´Â µðÆúÆ®·Î µð¹ö±× Æ÷Æ®(COM Æ÷Æ®)·Î ÀͼÁ¼Ç ¿À·ù Äڵ带 ±×¸² 6°ú °°ÀÌ º¸¿©Áֱ⠶§¹®¿¡ ¾îµð¿¡¼ ¿¡·¯°¡ ¹ß»ý Çß´ÂÁö´Â ¾î´À Á¤µµ ¾Ë ¼ö ÀÖ´Ù.
ÀͼÁ¼Ç ¿¡·¯¸¦ ºÐ¼®ÇØ º¼ ¶§ ÀͼÁ¼ÇÀº µ¥ÀÌÅÍ ¾îº¼Æ®(Data Abort)À̰í, PC(Program Counter)°¡ PC=4005f7e4(coredll.dll+0x0004f7e4)À̹ǷΠcoredll.dllÀÇ ¿ÀÇÁ¼Â(offset)ÀÇ 0x0004f7e4 À§Ä¡¿¡¼ Á¤È®È÷ µ¥ÀÌÅÍ ¾îº¼Æ®°¡ ¹ß»ýÇß°í, RA(Return Address)°ª RA=000111cc (ExceptionApp.exe+0x000011cc)º¸´Ù Exception App.exe ÇÁ·Î±×·¥ÀÇ ¿ÀÇÁ¼ÂÀÌ 0x000011cc À§Ä¡¿¡¼ ÇÔ¼ö¸¦ ÄÝ ÇÑ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¿©±â¼ Áß¿äÇÑ °ÍÀº PC°ª°ú RA°ªÀ» ¾Ë¸é ÀͼÁ¼ÇÀÌ ¹ß»ýÇÑ À§Ä¡¸¦ ãÀ» ¼ö°¡ ÀÖ´Ù´Â °ÍÀÌ´Ù.
ÇöÀçÀÇ PC°ªÀº coredll.dll¿¡ À§Ä¡Çϴµ¥ ÀÌ Àǹ̴ coredll.dllÀÌ API¸¦ °¡Áö°í ÀÖ´Â ÇÔ¼öÀ̹ǷΠÄÚµå ¾îµð¼±°¡ API¸¦ »ç¿ëÇÏ´Ù°¡ ÀͼÁ¼ÇÀÌ ¹ß»ýÇß´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ±×¸®°í RA°ªÀÌ ExceptionApp.exe¿¡ ÀÖ´Ù´Â Àǹ̴ ExceptionApp.exe ¾ÖÇø®ÄÉÀÌ¼Ç ÇÔ¼ö¿¡¼ ¾î¶°ÇÑ API ÇÔ¼ö »ç¿ë ÇÏ´Ù°¡ ÀͼÁ¼ÇÀÌ ¹ß»ýÇß´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÃßÀûÇÏ´Â ¼ø¼´Â ±×¸² 7°ú °°ÀÌ MAP ÆÄÀÏÀ» ÅëÇØ¼ ÀͼÁ¼Ç ¿À·ù ÇÔ¼ö¸¦ ã°í, COD ÆÄÀÏ Á¤º¸¸¦ ÅëÇØ¼ Á¤È®ÇÑ ÀͼÁ¼Ç À§Ä¡¸¦ ãÀ¸¸é µÈ´Ù.
쪾 MAP ÆÄÀÏ ÅëÇØ ÀͼÁ¼Ç ¿À·ù ÇÔ¼ö À§Ä¡ ã±â
ÀͼÁ¼ÇÀÌ ¹ß»ýÇÑ ÇÔ¼ö´Â MAP ÆÄÀÏ¿¡¼ Á¦°øÇÏ´Â Á¤º¸¿Í RA°ªÀ» ÅëÇØ¼ ¾Ë ¼ö ÀÖ´Ù(±×¸² 8).
½ÇÁ¦ ÁÖ¼Ò¸¦ °è»êÇØ º¸¸é 0x000111cc=0x0001 0000+0x000011cc ½ÇÁ¦ ÀͼÁ¼Ç ¹ß»ý ÇÔ¼ö°¡ Æ÷ÇÔ µÈ ÁÖ¼Ò´Â 0x000111cc¶ó°í ¾Ë ¼ö ÀÖÀ¸¸ç MAP ÆÄÀÏ ÅëÇØ¼ ÇØ´ç ÁÖ¼Ò°¡ ÀÖ´Â ÇÔ¼ö¸¦ ã¾Æº¸¸é InitIn stance ÇÔ¼ö¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
쪾 COD ÆÄÀÏÀ» ÅëÇØ Á¤È®ÇÑ ÀͼÁ¼Ç À§Ä¡ ã±â
MAP ÆÄÀÏÀ» ÅëÇØ¼ ÀͼÁ¼ÇÀÌ ¹ß»ýÇÑ À§Ä¡¸¦ ã¾Ò°í À̹ø¿¡´Â ÀͼÁ¼ÇÀÌ ¹ß»ýÇÑ ÇÔ¼ö(InitInstance ÇÔ¼ö) À§Ä¡¸¦ COD ÆÄÀÏ¿¡¼ Á¦°øÇÏ´Â Á¤º¸¸¦ ÅëÇØ Á¤È®È÷ ¾Ë ¼ö ÀÖ´Ù(±×¸² 9).
½ÇÁ¦·Î ÁÖ¼Ò °è»êÀ» ÇØº¸¸é 0x000001c8= 0x000111cc - 0x0001116c + 0x0000016c - 4 ½ÇÁ¦ Á¤È®È÷ ÀͼÁ¼ÇÀÌ ¹ß»ý ÇÑ À§Ä¡¸¦ ¾Ë ¼ö ÀÖ´Ù. ±×¸®°í -4¸¦ ÇØÁØ ÀÌÀ¯´Â ARMÀÇ °æ¿ì¸í·É¾î ¼öÇà ½Ã fetch-decode-execute ´Ü°è¸¦ °ÅÄ¡±â ¶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î decode ´Ü°è¿¡¼ fetch ´Ü°è¸¦ ¼öÇà ÇÑ´Ù¸é PC°ªÀÌ +4 ¸¸Å À̵¿Çϱ⠶§¹®¿¡ -4¸¦ ÇØÁØ´Ù. ±×·¯³ª ÀÌ´Â CPU¸¶´Ù ¶Ç´Â °æ¿ìÀÇ ¼ö¸¶´Ù ´Ù¸£¹Ç·Î ¾î´À °æ¿ì¿¡´Â -4¸¦ ÇØÁÖ´Â °æ¿ìµµ ÀÖ°í ¶Ç´Â -8À» ÇØÁÖ´Â °æ¿ìµµ ÀÖ´Ù. ¿ì¸®°¡ Á¤È®È÷´Â ¾Ë ¼ö ¾ø¾îµµ Äڵ带 ÃßÀû Çϴµ¥ Å©°Ô ¹®Á¦°¡ µÇÁö ¾ÊÀ» °ÍÀÌ´Ù.
¸¶¹«¸®
À©µµ¿ìÁî ÀÓº£µðµå CE ÀͼÁ¼Ç ¿¡·¯ ÃßÀûÇϱâ´Â ÀÌ¹Ì ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®³ª ÇÊÀÚ°¡ ¼Ò¼ÓµÈ ȸ»ç¿¡¼ ÁÖÃÖÇÏ´Â ¼¼¹Ì³ª¿¡¼ ¹ßÇ¥ÇÑ ÀڷḦ À籸¼ºÇÑ °ÍÀÌ´Ù. ¼¼¹Ì³ª¸¦ ÅëÇØ ±â¼úÁ¤º¸¸¦ °øÀ¯ÇÏ´Â °ÍÀÌ °¡Àå ÁÁ¾Ò°ÚÁö¸¸ º» ÁÖÁ¦¿¡ °ü½É ÀÖ´Â °³¹ßÀÚ ºÐµé²² ¹Ì¾àÇϳª¸¶ µµ¿òÀÌ µÇ±æ ¹Ù¶õ´Ù.
>>>ÀúÀÚ¼Ò°³
ÇÊÀÚ´Â MDSÅ×Å©³î·ÎÁö¢ß SEÆÀ¿¡¼ ±Ù¹«Çϰí ÀÖÀ¸¸ç À©µµ¿ìÁî ÀÓº£µðµå CEÆ÷ÆÃ ¹× ±â¼úÁö¿øÀ» ´ã´çÇϰí ÀÖ´Ù. ÇöÀç ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ À©µµ¿ìÁî ÀÓº£µðµå MVP·Î Ȱµ¿Çϰí ÀÖÀ¸¸ç MEDC Ä«Æä(www.medc.co.kr)¿Í À©µµ¿ì ÀÓº£µðµå °³¹ßÀÚ Ä¿¹Â´ÏƼWECOM(www.iwecom.co.kr)À» ¿î¿µÇϰí ÀÖ´Ù.
|
|
PDF¹®¼·Î º¸±â
(·Î±×ÀÎÇÏ¼Å¾ß ÇÕ´Ï´Ù.)
|
º» ±â»çÀÇ Àü¹®Àº PDF¹®¼·Î Á¦°øÇÕ´Ï´Ù. Adobe Reader¸¦
¼³Ä¡Çϼ̴ٸé PDF¹®¼·Î ÀÛ¼ºµÈ ÀüÀÚ¹®¼¸¦ ¿¶÷,º¸°üÇÒ
¼ö ÀÖ½À´Ï´Ù. |
|
| ÀúÀÛ±ÇÀÚ (c) (ÁÖ)Å×Å©¿ùµå, ¹«´Ü ÀüÀç ¹× Àç¹èÆ÷±ÝÁö |
|
|
Untitled Document
|