ÀÌ°æ¹®´Ô, Á¦¸ñ µµ¿ëÇؼ ÁË¼Û ^^;
¾ó¸¶Àü¿¡ ÀÚÀ¯°Ô½ÃÆÇ¿¡¼ Á¦°¡ Áñ°Ü¾²´Â ·Î±×Âï´Â ¹ýÀ» ¼Ò°³Çß½À´Ï´Ù¸¸.. °áÁ¤ÀûÀ¸·Î Áß¿äÇÑ Çϳª¸¦ ºü¶ß·Á¼.. ±× ºü¶ß¸° ÇÑ°¡Áö¸¦ ¼Ò°³ÇÕ´Ï´Ù. Á¦°¡ ÀÚÁÖ ¾²´Â°Ç ¾Æ´Ñµ¥.. ¾ÆÁÖ Àý½ÇÇÏ°Ô ÇÊ¿äÇÒ ¶§°¡ Á¾Á¾ÀÖ¾î¼ ±×¶§¸¶´Ù »ç¿ëÇÕ´Ï´Ù.
Çϳª´Â
Assert¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ°í ¶Ç Çϳª´Â
OutputDebugStringÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ý ±×¸®°í ÀÚ°Ô¿¡¼ ºü¶ß¸®°í ¼³¸í ¸ø ÇÑ, ÀÌ µÑÀ» È¥¿ëÇÏ´Â ¹æ¹ýÀ» ¼Ò°³Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
AssertAssert´Â µ¨ÆÄÀÌ ÇÔ¼öÀä..
Assert( False, '¿©±â¿¡¼ ¿¡·¯³µ´Ù'); ¿Í °°ÀÌ ÄÚµùÀ» Çϸé ÀÌ·¸°Ô ¸Þ¼¼Áö°¡ ¶å´Ï´Ù.
º¸½Ã´Ù½ÃÇÇ ¿¡·¯¾ÆÀÌÄÜ+³»°¡ ÁöÁ¤ÇÑ ¸Þ¼¼Áö+
AssertÇÔ¼ö¸¦ È£ÃâÇÑ À¯´Ö¸í+¶óÀγѹö°¡ °°ÀÌ ¶å´Ï´Ù.
ù¹ø° ÆĶó¹ÌÅÍÀÎ
ConditionÀº ¸»±×´ë·Î ÄÁµð¼ÇÀε¥... ÄÁµð¼ÇÀÌ
TrueÀÌ¸é »óÅ°¡ ÁÁÀº°Å°í ÄÁµð¼ÇÀÌ ¾ÈÁÁÀ¸¸é »óÅ°¡ ¾ÈÁÁÀº°Ì´Ï´Ù. ±×·¡¼
TrueÀ϶§´Â »óÅ°¡ ÁÁÀ¸¹Ç·Î ¿¡·¯°¡ ¾Æ´Ñ »óȲÀÌ°í
FalseÀ϶§´Â »óÅ°¡ ¾ÈÁÁÀ¸´Ï±ñ ¿¡·¯ÀÎ »óȲÀÔ´Ï´Ù. Áï, ÄÁµð¼ÇÀÌ
FalseÀ϶§¸¸ ¸Þ¼¼Áö°¡ Ãâ·ÂµÈ´Ù´Â ¾ê±â¿´½À´Ï´Ù. ¹°·Ð
False¶ó°í Á÷Á¢ ½áµµ ÁÁÁö¸¸
BooleanÇü º¯¼ö¸¦ ÀÌ¿ëÇÏ´ø°¡ ¾Æ´Ï¸é
Assert( i >= 0, '0 º¸´Ù ÀÛÀ¸¸é ¾ÈµÇ´Âµ¥..' );¿Í °°ÀÌ ÀÌ¿ëÇصµ ÁÁ½À´Ï´Ù.
OutputDebugString
OutputDebugStringÀº API ÇÔ¼öÀä. OutputDebugString( '¿©±â¿¡¼ ¿¡·¯ ³µ´Ù' );¿Í °°ÀÌ ÄÚµùÇÏ°í ¹Ýµå½Ã Run(F9)¸¦ ÇÑ ´ÙÀ½ View->Debug Windows->Event Log¸¦ Ŭ¸¯Çؼ(ȤÀº Ctrl+Alt+V) À̺¥Æ®·Î±× âÀ» ¶ç¿ö ³õÀ¸¸é OutputDebugString ÇÔ¼ö°¡ ½ÇÇàµÉ¶§ À̺¥Æ®·Î±× â¿¡ ´ÙÀ½°ú °°ÀÌ ¸Þ¼¼Áö°¡ ¶å´Ï´Ù.
¾Õ¿¡ ODS¶ó°í ½á´Â°ÍÀÌ OutputDebugStringÀ¸·Î ÂïÀº ¸Þ¼¼ÁöÀε¥¿ä ½ÇÁ¦·Î Çغ¸¸é ÀÌ ¿Ü¿¡µµ ÇÁ·Î¼¼½º°¡ ½ÇÇàµÉ¶§¶óµç°¡ ±âŸ ¿©·¯°¡Áö Á¤º¸°¡ °°ÀÌ ¿Ã¶ó¿À´Âµ¥, À̺¥Æ®·Î±× â¿¡¼ ¿À¸¥Âʸ޴º¿¡¼ Properties¸¦ Ŭ¸¯ÇÏ¸é ³ª¿À´Â ´ëÈ»óÀÚ¿¡¼ Messages ±×·ì¹Ú½º¿¡ Output messages¸¸ üũÇÏ°í ³ª¸ÓÁö´Â üũÇØÁ¦Çϸé OutputDebugString¸¸ ¶ß°ÔµË´Ï´Ù.(¹°·Ð ´Ù¸¥ ¸Þ¼¼Áöµéµµ È°¿ëÇϸé ÁÁ½À´Ï´Ù.)
Assert + OutputDebugString
¾Õ¿¡ µÎ °¡Áö´Â Àß ¾Æ´Â ³»¿ëÀ̾ú±¸¿ä À̹ø¿¡´Â ÀÌ µÎ °¡Áö¸¦ È¥¿ëÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÏ°Ú½À´Ï´Ù.
AssertÇÔ¼ö´Â ¾Õ¼ ¼Ò°³ÇÑ ¸Þ¼¼ÁöâÀ» ¶ç¿ì´Â ¹æ¹ýÀÌ ÀϹÝÀûÀÌÁö¸¸ »ç¿ëÀÚ°¡ ¾î¶² ½ÄÀ¸·Î Ãâ·ÂÇÒÁö¸¦ ¼¼ÆÃÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖ½À´Ï´Ù.
AssertErrorProcÀ» ÀÌ¿ëÇÏ¸é µÇ´Âµ¥¿ä... AssertErrorProcÀº SystemÀ¯´Ö¿¡ ¼±¾ðµÇ¾î ÀÖ´Â Àü¿ªº¯¼öÀÌ°í ÇÁ·Î½ÃÁ®Å¸ÀÔÀ¸·Î ¿øÇüÀº ´ÙÀ½°ú °°½À´Ï´Ù.
type
TAssertErrorProc = procedure (const Message, Filename: string;
LineNumber: Integer; ErrorAddr: Pointer); |
ÀÌ·± Çü½ÄÀ¸·Î ÇÁ·Î½ÃÁ®¸¦ ¸¸µé¾î¼ AssertErrorProc¿¡ ÇÒ´çÇØ ÁÖ¸é AssertÇÔ¼ö°¡ È£ÃâµÉ ¶§ ÀÌ ÇÁ·Î½ÃÁ®¸¦ È£ÃâÇØ ÁÝ´Ï´Ù. ÇÁ·Î½ÃÁ® ¾È¿¡¼ OutputDebugStringÀ» ÀÌ¿ëÇϰԵǸé Assert¸¦ È£ÃâÇÒ ¶§¸¶´Ù À̺¥Æ®·Î±× â¿¡ ¸Þ¼¼Áö¿Í À¯´Ö¸í, ¶óÀγѹö°¡ ÇÔ²² ÂïÈ÷°Ô µË´Ï´Ù.
´ÙÀ½Àº ±× ¿¹Á¦À̱¸¿ä..
procedure AssertProc(const Message, Filename: String;
LineNumber: Integer; ErrorAddr: Pointer);
begin
OutputDebugString( PChar( ExtractFileName( Filename ) +
'(' + IntToStr( LineNumber ) + ' Line) ' +
Message ) );
end; procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i := -1;
Assert( i >= 0, 'i´Â 0º¸´Ù ÀÛÀ¸¸é ¾ÈµÇ´Âµ¥..' );
end; initialization
AssertErrorProc := AssertProc; |
Button1À» Ŭ¸¯Çϸé À̺¥Æ®·Î±×â¿¡ ´ÙÀ½°ú °°ÀÌ ÂïÈü´Ï´Ù.
À¯´Ö¸í°ú ¶óÀμö°¡ ÇÔ²² Ãâ·ÂÀÌ µÇ°í º°µµÀÇ if¹® ¾øÀ̵µ »óȲ¿¡ µû¶ó¼ ¼±ÅÃÀûÀ¸·Î Ãâ·ÂÇÒ ¼ö ÀÖ¾î¼ ÁÁ½À´Ï´Ù. ¶ÇÇÑ µð¹ö±ë½Ã¿¡¸¸ µ¿ÀÛÇÏ´Â OutputDebugStringÀ» ÀÌ¿ëÇÔÀ¸·Î½á ÀÌ »óÅ·Π¹èÆ÷Çصµ µÇ°í ¸Þ¼¼Áö¹Ú½º¸¦ ¶ç¿ì´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î ¾²·¹µå³ª ¸Þ¼¼Áöµî°ú °°ÀÌ ½Ã°£À̳ª ÀýÂ÷¿¡ ¹Î°¨ÇÑ ¿¡·¯¸¦ ÀâÀ» ¶§ Æí¸®ÇÕ´Ï´Ù.
³¡.