Eclipseãããã¬å¾¹åºè§£èª¬
Java Advent Calendar -ja 2010 : ATND 11æ¥ç®ãæ¨æ¥ã¯ãid:daisuke-m ã§ããã
å®å
¨ã« Eclipse ã®ãã¨æ¸ãã¨ãµããã¦ãæããããã®ã§ Eclipse ã«ã¤ãã¦æ¸ãã
Eclipse ã®ä½ã«ã¤ãã¦æ¸ãããã¨èãããã ãã©ãå
æ¥ã社ä¼äººã«ãªã£ã¦ããããã°ã©ã æ¸ãå§ããå¼ç¤¾ã®è¥ãåããããããã¬ãã®åå¨ãç¥ããªãã£ãã®ã§ãããã¬ã®åºæ¬çãªä½¿ãæ¹ãªã©ã«ã¤ãã¦æ¸ãã
PHPã¨ããã¡ãã£ã¨ããWebãã¼ã¸ãããã£ã¨æ¸ãã«ã¯ç´ æ´ãããè¨èªã ãããç¥ããªãã¿ããã ãããããã¾ããããã¬ä½¿ãæåãç¡ãã£ã模æ§ã§ãã
var_dumpãããã°ã§â¦ã
ä»åã¯åå¿è åãè¨äºãªã®ã§ãåºæ¬Java使ãåãã¦ãçæ§ã¯èªã¾ãªãã¦ããããããBreak Point Properties ã® Condition ã¨ãDrop To Frameã¨ãExpressionã®æ©è½ç¥ããªã人ã¯èªãã§ã¿ã価å¤ã¯ãããï¼
ã¨ããã§ãEclipse è¨äºã¨ããã°ãåã®ãå ¨Eclipse Java ããã°ã©ãã¼ã«æ§ãã Eclispe å¾¹åºæ´»ç¨è¡å®å ¨çãEclipseã«ç©ºæ°ãèªã¾ãã¦æ¥½ããè¡ããã¨ããè¨äºã¯åä½ãªã®ã§èªãã§ãã ãããã
ãã¦ãããã¬ã¨ã¯ä½ããwikipediaã«ããã¨ã
ãããã¬ã¨ã¯ããããã°ãæ¯æ´ããããã°ã©ã ã®ãã¨ã対話çã«å©ç¨è ãããã°ã©ã ãåä½ãããããããã°ã©ã ã使ã£ã¦ããå¤æ°çã表示ãããæ©è½ããããè¿å¹´ã§ã¯çµ±åéçºç°å¢ã«å«ã¾ãã¦ãããã¨ãå¤ããã¾ããICEãªã©ã§ã¯ããã¼ãã¦ã§ã¢ã¨é£æºãã¦åä½ããã
ã¨ãããã¾ãããããã°ä½æ¥ãªã©ã楽ã«ãªããã¼ã«ã ã¨ãããã¨ã§ãããããªãã¨è¨ããã¦ãããããªãã ãããããå®ä¾ãè¦ã¾ãããã
ä¾ãã°æ¬¡ã®ãããªã¯ã©ã¹ããã£ãã¨ããããã¨ãã°ããã®ã¯ã©ã¹ã®ä»æ§ã count ã 0 ããå§ã¾ã£ã¦ãcountUp ã¡ã½ãããå¼ã¶ãã¨ã§ count ãå¢ãã¦ããä»æ§ãæå¾
ãã¦ãã¨ãããããå®éã«ã¯ãcountUp ãå¼ã¶ã¨ä½æ
ã 99 ã«ãªããããããããã°ãããã¨ãããã
æ¬å½ã¯ãã£ã¨è¤éãªã³ã¼ãä¾ãåºãããã£ãã®ã ããé£æ¥ã®å¿å¹´ä¼ã§åå°½ããããã¨ã¢ã³ãã³ã§åå°½ããã
Eclipse ã®ãããã¬ã®èµ·åã®ä»æ¹ã¯ããã¼ã«ãã¼ã«ãã
è«ãã¿ã³ãã¯ãªãã¯ããããå³ã¯ãªãã¯ã®ãDebug Asããªã©ãããJava ApplicationãããJUnitããªã©ãé¸æãã¦ãJava ApplicationãJUnitã®ãã¹ãããããã°å®è¡ããããã¾ããEclipseããTomcatãJettyãªã©ã®Webãµã¼ãã¼ãèµ·åãããã¨ã§ãWebã¢ããªã±ã¼ã·ã§ã³ã®ãããã°ãåºæ¥ããã¾ããå¾è¿°ããããä»ã®ãã·ã³ã§åãã¦ããWebã¢ããªã±ã¼ã·ã§ã³ãªã©ããããã¬ãã¤ãªãã§ããã°ã©ã ã®æåãè¦ããã¨ãåºæ¥ãã
ãã¦ããããã¬èµ·åã§ããã ãããï¼ãã®ã¾ã¾ã ã¨ä½ããããªãããããEclipse 㯠Debug ãã¼ã¯ã¹ãã¯ãã£ãã«å¤ããã¨æããã
ãããã°ä½æ¥ã§å¤§äºãªã®ã¯ãã¬ã¼ã¯ãã¤ã³ããè¨å®ãããã¨ã ããã¬ã¼ã¯ãã¤ã³ãã¨ã¯ããããã¬ãèµ·åããæã«å¦çãæ¢ããå ´æã®ãã¨ã§ããã
ãã¬ã¼ã¯ãã¤ã³ãã®è¿½å æ¹æ³ã¯ãã³ã¼ãã®ã¨ãã£ã¿ã®å·¦ç«¯ãããã«ã¯ãªãã¯ããããå³ã¯ãªãã¯ã®ã¡ãã¥ã¼ããToggle Breakpointã¡ãã¥ã¼ãé¸æãããã¨ã§è¿½å ã§ããã
ãã¬ã¼ã¯ãã¤ã³ãã¯ããã¤ã§ã追å ã§ããããã ããé©åãªå°æ°ã®ãã¬ã¼ã¯ãã¤ã³ããè¨å®ã§ãããã¨ã¯éè¦ãªã¹ãã«ã ããã¬ã¼ã¯ãã¤ã³ããä½ããããã¨ããããã°ä½æ¥ãã¯ãã©ããªãã
ãã¦ãå度ãããã¬ãèµ·åãã¦ã¿ããããã¬ã¼ã¯ãã¤ã³ãã§ä»¥ä¸ã®ãããªè¡¨ç¤ºã«
ãªãã°æåã§ããã
ãã¦ãæ¢ã¾ã£ãã ãã§ã¯å½ç¶ä½ãå¬ããã¯ãªããæ©è½ãç°¡åã«ç´¹ä»ãã¤ã¤ãããã¬ã使ã£ããããã°æ¹æ³ã«ã¤ãã¦è§£èª¬ããããä¾ãã°ãã¾ããã®æ¢ã¾ã£ã¦ãç¶æ
ã§ãå³ä¸ã®Variables Viewã§å¤ã確èªãã¦ã¿ããã
ããããã¨ãcountã®å¤ã100ã«ãªã£ã¦ããã®ãè¦ãããã¾ããããã§ãã°ã®åå ã®ã²ã¨ã¤ãããã£ããã¤ã¥ãã¦ããªã99ã«ãªãã®ã調ã¹ã¦ã¿ããã®ã§ãã¡ã½ããã®ä¸ã§ä½ããã¦ãã®ãããããã¬ã§è¿½ã£ã¦ã¿ãããStep Inã¨ããæ©è½ã使ãã¨ãã¡ã½ããã®ä¸ã«å
¥ããã¨ãã§ãããDebug Viewã®ãã¿ã³ãæ¼ãããã·ã§ã¼ãã«ãããã¼ãF5ãªã®ã§ããããæ¼ããã¨ã§ã¡ã½ããã®ä¸ã«å
¥ããã¨ãåºæ¥ãã
count-- ãã¦ãã¾ã£ã¦ããã§ã¯ãªãããããããã°ã®åå ãã®ï¼ã§ããã
ã¨ãè³æ¥µç°¡åãªã³ã¼ããªã®ã§ããããã¿ããããåããã«ããã£ããããããªããã大ã¾ããªãããã°ã®æµãã¯ãã®ããã«ãªãã
ç¶ãã¦ãä¸åä¸åã® View ã®è©³ç´°ã解説ããããããã§ããã¦ãããããã¬ã®æ©è½ã使ãåããã¨ã§è¤éãªã½ã¼ã¹ã§ããµã¯ãµã¯ãããã°ã§ããããã«ãªããã¼ï¼
ã¾ãå·¦ä¸ã®Debug Viewã ãã
ããã¯ãç¾å¨JVMã§èµ·åãã¦ããã¹ã¬ãããã¹ã¿ãã¯ããããã¬ãæ¢ã¾ã£ã¦ããå ´æãªã©ã表示ãããã
ä»åã®ä¾ã§ã¯ã¹ã¬ãããã²ã¨ã¤ã ããWebã¢ããªã±ã¼ã·ã§ã³ã®ãããã°ãªã©ãããã¨ãã¹ã¬ãããè¤æ°è¦ãããã¨ã¨ãªãã
ã¾ãããã¦ã¹æ´¾ã«ã¯ä¾¿å©ãªResumeãã¿ã³ãStep Intoãã¿ã³ãªã©ãé
ç½®ããã¦ãããåã¯ãã¼ãã¼ãæ´¾ãªã®ã§ã·ã§ã¼ãã«ãããã¼ã使ãã¾ããã
ãã¿ã³ã®èª¬æããããã
- Resume(F8)
ä»ãã¬ã¼ã¯ãã¤ã³ãã§æ¢ã¾ã£ã¦ããããã°ã©ã ã次ã®ãã¬ã¼ã¯ãã¿ã³ã¾ã§é²ãã
- Suspend
ããã°ã©ã ãæ¢ããããªããç¡éã«ã¼ããããã¨æã£ãããã®æ©è½ã使ãã¨(ãã»âã»)イイ!!ãï¼
- Terminate(Ctrl+F2)
ãããã¬ã®çµäº
- Disconnect
ãªã¢ã¼ããããã°ãã¦ãã¨ãã«ãåæããâ¦ããããï¼
- Step Into (F5)
ãã£ããè¦ããã¡ã½ããã®ä¸ã«å ¥ããã¤ã
- Step Over(F6)
ã¡ã½ããå¼ã³åºããã¹ããããã¦æ¬¡ã®è¡ã¾ã§è¡ããèªåããããã°ããã対象ãããªãã¨ãã¯Step Overã§ã
- Step Return(F7)
ã¡ã½ããããReturnããããããã°ãã¦ã¦ããã®ã¡ã½ããã¯ããé¢ä¿ãªããã¼ãã¨æã£ããStep Returnã§ã
- Drop To Frame
ãã俺使ã£ããã¨ãªãã£ããã ãã©ã調ã¹ãã便å©ããããå·¦ã®ã¹ã¿ãã¯ãã¬ã¼ã ãé¸æãã¦ãããã«æ»ããã¨ãåºæ¥ãï¼ãã便å©ãããã ãâ¦ä¿ºäººçãä»ã¾ã§ç¡é§ã«ãã¦ããâ¦
- Use Step Filters
Step Into ã§ã¬ã¹ã¬ã¹é£ã¶ã¨ãã«ããããã°å¯¾è±¡ãããªãã³ã¼ãã«å
¥ã£ã¦ãã¾ãã¨é常ã«ãã«ã¤ãç¹ã«æååãªãã©ã«ãåºã¦ããã¨Stringã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã«å
¥ã£ãããã¦é常ã«äººçãç¡é§ã«ããããããªã¨ãã«ããã®Filteræ©è½ã使ãã¨å¹¸ãã«ãªããã
ãã£ã«ã¿ã®è¨å®ã¯ãPreferencesã® [Java]-[Debug]-[Step Filtering]ããåºæ¥ããï¼ãããç¥ããªã人å¤ãããããªãããªã
- Focus on active task
ããç¥ããªãã£ããã©ãMylynã§ã¿ã¹ã¯è¨å®ããã½ã¼ã¹ããè¦ããªããªãâ¦ã®ããªã便å©ããã
ãã¨ç¢å°ãæ¼ãã¨ãã¡ãã¥ã¼ãããããåºã¦ããã
- Layout
è¦ãç®ããããå¤ãããããï¼ã¤ãã£ããã¨ãªããï¼
- View Management
Debug Viewãåºããã¼ã¹ãã¯ãã£ãããããããï¼ä½¿ã£ããã¨ãªããï¼
Debug Viewã«è¡¨ç¤ºãããã®ãå¢ããããï¼ä¿ºä½¿ã£ããã¨ãªãã£ããã ãã©ãShow Monitorããã°ãã¹ã¬ããã®Monitorã®ç¶æ ãè¦ããããããããããã¯ã¨ãã®ãããã°ã«ãã£ã¨ä¾¿å©ã ãï¼ã¹ã¬ããã°ã«ã¼ãã¨ããåºãããããã£ã¨ä¾¿å©ã ãï¼
次ã«ãEditorã®Viewã«ã¤ãã¦ã
ãã®ç·è²ã«ãªã£ã¦ããã©ã¤ã³ããç¾å¨ããããã¬ãå®è¡ãã¦æ¢ã¾ã£ã¦ããç®æãæãã¦ãããWebã¢ããªã±ã¼ã·ã§ã³ãªã©ããªã¢ã¼ããããã°ããã¨ãã³ã¼ãã®ãã¼ã¸ã§ã³ãéã£ã¦ãã¦ãå
¨ç¶éãè¡ãããã¦ãã¦ãããã¨ãã¯ãããã¡ãªã®ã§æ³¨æãããããã¹ã¿ãã¯ãã¬ã¼ã ãä»ã®ä½ç½®é¸æããã¨ãèãç·è²ã§è¡¨ç¤ºããããï¼
次 Variables View
ããã¯ããããã¬ãæ¢ã¾ã£ã¦ããã³ã³ããã¹ãã§è¦ããå¤æ°ã®ä¸è¦§ã表示ããããè¦ã¦ãããã¨æãããã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã ã£ããã¯ã©ã¹ã®ååããªãã¸ã§ã¯ãidãããªããã£ãåã ã£ããå¤ãã®ãã®ã表示ããããã¾ãããªãã¸ã§ã¯ããé¸æè¢ãã¨ãã«ã¯ãä¸å´ã«toStringããçµæãè¦ããã
ãã¨ããã大äºãªæ©è½ãªã®ã«ç¥ããªã人ãå¤ãã®ã ããVariables Viewãããå¤æ°ã®å¤ãæ¸ãæãããã¨ãã§ãããä¾ãã°ãã®ä¾ã§countã100ã«ãªã£ã¦ããããããããããã°ã®é½åã§0ã«ãããã¨ãã欲æ±ããã£ãã¨ãããcountã®Valueã®ã¨ããã§ããã«ã¯ãªãã¯ãã¦ã¿ãããããããã¨ããªããç·¨éã§ããããªUIã«ãªãã
ããã§å¤ã0ã«ãã¦ãEnterãæ¼ãã¨ãããä¸æè°ãå¤ãæ¸ãæãã£ã¦ããã®å¾ã¯ãã®å¤ã§ããã°ã©ã ãåãããã«ãªãããããã¬ããæ¸ãæããå¤ã¯ãé»è²ã表示ããã親åè¨è¨ã
次 Breakpoints View
è¨å®ãã¦ãããã¬ã¼ã¯ãã¤ã³ãã®ä¸è¦§ãè¦ããããããããã¬ã¼ã¯ãã¤ã³ããåé¤ãããããã¬ã¼ã¯ãã¤ã³ãã®ããã½ã¼ã¹ãéãããã§ããã
ä¸åä¸åã³ã³ããã¹ãã¡ãã¥ã¼ã説æãã¦ããããã¡ãªã¿ã«ã説æã®ããã«ãã³ã³ããã¹ãã¡ãã¥ã¼ãåºããã ãã§ãå
¨ã¦ã®æä½ã¯ããã®Viewå
ããåºæ¥ããä¾ãã°ãã¬ã¼ã¯ãã¤ã³ãã®åé¤ã¯ãã¬ã¼ã¯ãã¤ã³ããé¸æãã¦ããDeleteããã¼ã§åé¤ã§ããã
- Go to File
ãã¬ã¼ã¯ãã¤ã³ãã®ããã½ã¼ã¹ãéã
- Suspend VM / Suspend Thread
ãã¬ã¼ã¯ãã¤ã³ãã«æ¥ãã¨ãã«ãVMãã¨æ¢ãããã¹ã¬ãããæ¢ãããã®è¨å®ãã§ããã使ã£ãè¨æ¶ã¯ãªã
- Hit Count
ã«ã¼ãå ã®å¦çã¨ãããããã°ãã¦ãã¨ãã«ãã«ã¼ã100åç®ãããã®å¦çãããããâ¦ã¨ãããããã§ããã¬ã¼ã¯ãã¤ã³ãã«100åããã¾ã§æåã§åãâ¦ã¨ãããã®ã¯ãã£ãããã®ã§ãHitCountã¨ããã®ã100ã¨è¨å®ããã°ã100åãã¬ã¼ã¯ãã¤ã³ãã¾ã§ãããåãã¦æ¢ããã¨ããã§ãã
- Enable / Disable
ä¸æçã«ãã¬ã¼ã¯ãã¤ã³ããå©ç¨åæ¢ã¨ããåºæ¥ãããªããããã«ãã°ãªããããã¨æã£ããåé¤ããããããªãã¦ä¸æåæ¢ã¨ãã«ãããããã
- Removeã¨ãExportã¨ãã¯è¦ãã°ããããã
- BreakPoint Properties
次ã®ãããªç»é¢ãéãã¦ç´°ããè¨å®ãã§ããããEclipse Helios ãããã»ã¨ãã©ã®é ç®ãViewããç´æ¥ç·¨éã§ããããã«ãªã£ãã®ã§ãã¾ã使ããªã
- Condition
ããããã大äºãªæ©è½ã§ãããç¹å®ã®æ¡ä»¶ã«å½ã¦ã¯ã¾ã£ããããå ´åã ããã¬ã¼ã¯ãã¤ã³ããæ¢ãããã¨ãåºæ¥ãããã£ããã«ã¼ãã«ã¤ãã¦æ¸ããããã«ã¼ãã®ä¸ã§å¤ãããå¤ã«ãªã£ãã¨ãã ãåããããããã¨ãã®æã«ä½¿ãã
æå¾ã« Expression Viewã
Javaã®å¼ãæ¸ãã¦ãããã¨ã§ããããã°å®è¡ãã¦ããã³ã³ããã¹ãã§ããã®Javaã®å¼ãè©ä¾¡ããå¤ã表示ãã¦ãããããããè¯ã使ããããããã£ãè¦ããããã¡ã½ãããå¼ã¹ãããã ããå¯ä½ç¨ã®ãããããªã¡ã½ãããå¼ã¶ã¨ãã¯ããã注æãããã«ã¯ã¾ã£ãçµé¨ãããã
é·ãè¨äºã ã£ãâ¦æå¾ã®ã»ãã¯å²ã¨åå°½ãã¦ãæããã£ãï½
ããããã°ãWindowsã®Eclipseã§ãVMã®CentOSã®ãªãã§åããã¦ãApache2+PHP5.2ã«Xdebugã§ãªã¢ã¼ããããã°ã§ããªããã§ãããã¿ããªPHPã§ãããã¬å©ç¨ã§ãã¦ãããï¼ï¼ï¼
ãã¦ãJava Advent Calendar -ja 2010 : ATND 12æ¥ç®ãææ¥ã¯ã寺ç°ã佳央 ? Yoshio Teradaããã§ãã