Áß´ÜÁ¡À» »ç¿ëÇÏ¸é Æ¯Á¤ À§Ä¡¿¡¼ ÇÁ·Î±×·¥ ½ÇÇàÀ» ÀϽÃÁß´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù. Áß´ÜÁ¡Àº ÀϹÝÀûÀ¸·Î ¼Ò½º ÄÚµå¿Í ÇÔ²² UI¿¡ Ç¥½ÃµË´Ï´Ù. ÇÁ·Î±×·¥ ½ÇÇà µµÁß Áß´ÜÁ¡ÀÌ ³ªÅ¸³ °æ¿ì ÇÁ·Î±×·¥Àº BREAKPOINT¸¦ »ç¿ëÇÏ¿© SUSPEND µð¹ö±× À̺¥Æ®¸¦ ÀϽÃÁß´ÜÇÑ ÈÄ Æ®¸®°ÅÇÕ´Ï´Ù.
Ç÷¯±×Àο¡¼ ÇØ´ç UI¿¡ Áß´ÜÁ¡À» Ç¥½ÃÇØ¾ß ÇÏ´Â °æ¿ì IBreakpointListener¸¦ IBreakpointManager¿¡ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. IBreakpointManager´Â ¸ðµç Áß´ÜÁ¡¿¡ ´ëÇÑ ÇÙ½É ±ÇÇÑ¿¡ ÇØ´çÇÕ´Ï´Ù. Áß´ÜÁ¡ °ü¸®ÀÚ¸¦ »ç¿ëÇÏ¿© Áß´ÜÁ¡ÀÌ Ãß°¡ ¹× Á¦°ÅµË´Ï´Ù. À̶§ Áß´ÜÁ¡ °ü¸®ÀÚ¿¡¼´Â Áß´ÜÁ¡ Ȱµ¿À» ¸ðµç ¸®½º³Ê¿¡°Ô ¼ø¼´ë·Î ¾Ë¸³´Ï´Ù. Áß´ÜÁ¡ Á¶ÀÛÀº Áß´ÜÁ¡ °ü¸®ÀÚ¸¦ »ç¿ëÇÏ¿© »ç¿ë/»ç¿ë ¾ÈÇÔÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Áß´ÜÁ¡ °ü¸®ÀÚ´Â DebugPlugin¿¡¼ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù.
IBreakpointManager mgr = DebugPlugin.getDefault().getBreakpointManager();
ÀÚü µð¹ö±× ¸ðµ¨À» Á¤ÀÇÇÏ°í ±¸¼ºÀ» ÀÚÁÖ ½ÇÇàÇÏ´Â Ç÷¯±×ÀÎÀº °íÀ¯ÇÑ Áß´ÜÁ¡ À¯ÇüÀ» Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. IBreakpoint¸¦ ±¸ÇöÇϴ Ŭ·¡½º¸¦ Á¤ÀÇÇÏ¿© ƯÁ¤ µð¹ö±× ¸ðµ¨ÀÇ Áß´ÜÁ¡À» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
Áß´ÜÁ¡Àº ÀÚ¿ø ¸¶Ä¿¸¦ »ç¿ëÇÏ¿© ±¸ÇöµË´Ï´Ù. ÀÚ¿ø ¸¶Ä¿¸¦ ´Ù½Ã È£ÃâÇϸé À̸§ÀÌ ÁöÁ¤µÈ ¼Ó¼º ¾ç½ÄÀ¸·Î ÀÚ¿ø¿¡ ´ëÇÑ ¸ÞŸ Á¤º¸¸¦ ¿¬°ü½Ãų ¼ö ÀÖ½À´Ï´Ù. ¸¶Ä¿¸¦ »ç¿ëÇÏ¿© Áß´ÜÁ¡À» ±¸ÇöÇÏ¸é µð¹ö±× ¸ðµ¨¿¡¼ ±âÁ¸ÀÇ ¸ðµç ¸¶Ä¿ ±â´É(¿¹: ÆíÁý±â¿¡¼ Áö¼Ó, °Ë»ö, Ãß°¡, »èÁ¦ ¹× Ç¥½Ã)À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Áß´ÜÁ¡ »ç¿ë ½Ã ¸¶Ä¿¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ ¿Ö Áß¿äÇմϱî? Áß´ÜÁ¡ À¯ÇüÀ» ÀÛ¼ºÇÒ ¶§ ¿¬°üµÈ ¸¶Ä¿ À¯Çüµµ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¸ðµç org.eclipse.debug.core.breakpoints È®ÀåÀº org.eclipse.core.resources.markers È®Àå°ú µ¿¹ÝµÇ¾î¾ß ÇÕ´Ï´Ù. Java Áß´ÜÁ¡¿¡¼ Java µµ±¸°¡ Á¤ÀÇÇÏ´Â È®ÀåÀ» °ËÅäÇÏ¿© ¼³¸íÇÏ´Â °ÍÀÌ °¡Àå ÁÁ½À´Ï´Ù.
<extension id="javaBreakpointMarker" point="org.eclipse.core.resources.markers"> <super type="org.eclipse.debug.core.breakpointMarker"/> </extension> <extension id="javaExceptionBreakpointMarker" point="org.eclipse.core.resources.markers"> <super type="org.eclipse.jdt.debug.javaBreakpointMarker"/> <persistent value="true"/> <attribute name="org.eclipse.jdt.debug.core.caught"/> <attribute name="org.eclipse.jdt.debug.core.uncaught"/> <attribute name="org.eclipse.jdt.debug.core.checked"/> </extension>
<extension point="org.eclipse.debug.core.breakpoints"> <breakpoint id="javaExceptionBreakpoint" markerType="org.eclipse.jdt.debug.javaExceptionBreakpointMarker" class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaExceptionBreakpoint"> </breakpoint> </extension>
µð¹ö±× Ç÷¯±×ÀÎÀº ¸¶Ä¿ÀÇ Æ¯¼ö À¯Çü(org.eclipse.debug.core.breakpointMarker)À» Á¤ÀÇÇÕ´Ï´Ù. µð¹ö°Å¿¡¼ Áß´ÜÁ¡ ¸¶Ä¿¸¦ Á¤ÀÇÇÒ ¶§ ÀÌ ¸¶Ä¿¸¦ »óÀ§ À¯ÇüÀ¸·Î »ç¿ëÇÏ¿© ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù. ±×·¯¸é µð¹ö±× ¸ðµ¨Àº ÇØ´ç ¸¶Ä¿ÀÇ ÇÏÀ§ À¯ÇüÀ» °Ë»öÇÏ¿© ¼Ò½º ÆÄÀÏ¿¡ ÀÖ´Â ¸ðµç °¡´ÉÇÑ Áß´ÜÁ¡À» ãÀ» ¼ö ÀÖ½À´Ï´Ù. À§ ¿¹Á¦¿¡¼´Â javaExceptionBreakpointMarkerÀÇ »óÀ§ À¯ÇüÀÌ javaBreakpointMarkerÀÔ´Ï´Ù. À̶§ ÈÄÀÚÀÇ »óÀ§ À¯ÇüÀº breakpointMarkerÀÔ´Ï´Ù. Áß´ÜÁ¡ È®Àå¿¡¼ Á¤ÀÇµÈ javaExceptionBreakpoint´Â ÇØ´ç ¸¶Ä¿·Î javaExceptionBreakpointMarker¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ ¸ðµç »çÇ׿¡ ¾î¶² Àǹ̰¡ ÀÖ½À´Ï±î? µð¹ö±× Äڵ带 ¼Ò½º ÄÚµå ÆÄÀÏ¿¡¼ ¾òÀ» °æ¿ì »óÀ§ À¯ÇüÀÌ org.eclipse.debug.core.breakpointMarkerÀÎ ¸ðµç ¸¶Ä¿¿¡¼ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ðµç ¸¶Ä¿¸¦ ãÀ¸¸é È®Àå ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÏ¿© ¸¶Ä¿¸¦ ÀÌ¿Í ¿¬°üµÈ Áß´ÜÁ¡ Ŭ·¡½º¿¡ ¸ÊÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀ» ÅëÇØ Ç÷§Æû µð¹ö±× ÄÚµå´Â ÀϹÝÀûÀ¸·Î ƯÁ¤ ¼Ò½º ÆÄÀÏ¿¡ ¼³Á¤µÈ ¸ðµç Áß´ÜÁ¡ À¯ÇüÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù.