1.0 簡介
2.0 已知的問題
2.1 Web 開發環境
2.2 WebSphere Application Server 除錯
2.3 JavaScript 除錯器
2.4 SQL 儲存程序除錯器
2.5 測試和部署工具(伺服器工具)
2.6 Java 開發工具 (JDT) 除錯器
2.7 編譯語言除錯器
2.8 國家語言限制
2.9 SQLJ 除錯器
2.10 Active Script 除錯
WebSphere Studio 中的除錯器提供了 Web 應用程式、伺服器端 JavaScript、Active Script、Java、SQL 儲存程序以及編譯的語言除錯所需的工具。 這個 Readme 檔會說明和 WebSphere Studio 除錯器相關聯的已知問題與限制。
JSP 除錯:
- JSP 檔在 WebSphere Application Server 上測試時可以除錯。如果您是在 Tomcat 伺服器上進行測試,除錯器不會停在 JSP 岔斷點。
- 岔斷點可以設定在 JSP 檔中的下列標示內:
- 格式如下的 JSP Scriptlet:<% %>
- 格式如下的 JSP 表示式:<%= %>
- 格式如下的 JSP 宣告:<%! %>
- jsp:useBean、jsp:getProperty 和 jsp:setProperty 標示
- 自訂標示
- 岔斷點不能設定於下列標示組:
- HTML 程式碼
- JSP 指引
- 所有其他標準 JSP 標示(jsp:include、jsp:forward 等)
- 如果您要將舊版 WebSphere Studio 中的工作區移轉至這個版本,您必須刪除 JSP 岔斷點,再重建它們。
- EJB Home 方法的逐步除錯模式會失敗:如果您利用 WebSphere Application Server 除錯配接器來啟動除錯階段作業,逐步除錯模式會跳過 EJB Home 方法。 如果這些方法需要除錯,請使用岔斷點。
- 不支援從 Java 跳回 JavaScript:如果您要能夠從 Java 返回 JavaScript 程式碼,請利用岔斷點。
- 除錯 JSP:
- 逐步除錯不會處理不包含任何執行碼的 JSP。
- 如果您利用 WebSphere Application Server 除錯配接器來啟動除錯階段作業,您不能視察或顯示 JSP 變數和表示式。
- JSP 不支援執行至指定行號。
- JSP 岔斷點的設定可能比較慢。如果您有許多 JSP 岔斷點,請讓除錯器在起始設定時有額外的時間。
- JSP 宣告區段靜態變數的岔斷點無法運作,可能會造成其他岔斷點問題。
- 不支援 JSP 岔斷點的岔斷點內容,例如讀取計數、條件、選取的執行緒和 VM 暫停原則。
- 不可在除錯器編輯器中設定 Java 岔斷點:Java 岔斷點必須設在 Java 編輯器中,而不是除錯器編輯器中。
- 使用「變更程式檔除錯」視圖蹦現功能表項目:如果您變更利用堆疊框的變更程式檔蹦現功能表項目來顯示的程式檔,就不會在編輯器中開啟新檔案。 如果要解決這個問題,請按一下另一個堆疊框,再重新按一下原始堆疊框。 之後,應該會在編輯器中開啟新檔案。
- 除錯主控台:在除錯主控台中,開啟類型的超鏈結無法運作。
- 在快速交換之後的堆疊框標籤: 如果在快速取代程式碼之後,部分堆疊框會有如下標籤:
<unknown receiving type>(<unknown declaring type>).<unknown method name>(<unknown arguments>) line: not available <unknown line number>您可以切換至不同的視景,再返回「除錯」視景,以取得正確的標籤。
- 在建構子完成之前,無法檢查 JavaScript 物件:您可以逐步執行建構子,但在建構子完成之前(您已離開建構子),您無法檢查所建構的物件。
- 在頂端堆疊框之下的逐行作業與堆疊框:JavaScript 不支援跳過和跳出最上層堆疊框以外的堆疊框。
- JSP include:不支援在 JSP include 中進行 JavaScript 的除錯。
- 跳出遞迴函數:進行遞迴 JavaScript 函數除錯的使用者會發現,當他們跳出某個遞迴函數時,會回到最上層的執行層次。
- 不可展開含有 writer 或 inputStream 變數的物件:當檢查 JavaScript 物件時,會警告使用者不要展開含有 writer 或 inputStream 變數的物件。這會導致除錯器沒有回應。
- 測試環境:當使用 WebSphere 第 5 版測試環境時,JavaScript 除錯無法運作。這個問題在 APAR #PQ73036 之下獲得修正。
- 在「資料定義」視圖中匯入或刪除資料庫可能會使所設定的岔斷點遺失: 如果您在「資料定義」視圖中將資料庫匯入資料夾之前進行 SQL 儲存程序的除錯,之後再匯入資料庫,您建立的任何行岔斷點都會遺失。 匯入資料庫之後,除錯器會利用這個資料夾來檢視程式碼。 如果您刪除匯入的資料庫資訊,您下次試圖進行 SQL 儲存程序的除錯時,也會失去岔斷點資訊。 這不會還原最初匯入資料庫時失去的岔斷點。
建議您在進行儲存程序的除錯之前先匯入資料庫,以避免這個問題。
- 不支援進行 Java 儲存程序的除錯:編輯器可讓您將岔斷點加入 Java 儲存程序的程式碼中。可是,系統會忽略這些岔斷點, 原因是系統尚未支援 Java 儲存程序的除錯功能。
- 定界儲存程序名稱:SQL 儲存程序除錯器提供有限支援含定界綱目或程序名稱的儲存程序。 這些程序必須從「啟動配置」對話框啟動,不能從「資料定義」視圖的快速功能表啟動。
- 支援同時開啟多個作用中的 SQL 儲存程序除錯器階段作業:在本產品的 5.0 版中,您不能同時開啟多個作用中的 SQL 儲存程序除錯器階段作業。 在本產品的 5.0.1 版或更新的版本中,已不再有這項限制。
- 含 FOR BIT DATA 引數的儲存程序:引數含有 FOR BIT DATA 屬性的儲存程序無法利用 WebSphere Studio SQL 儲存程序除錯器來除錯。
- 現行產品可能無法辨識在早期供應產品中建立的啟動配置:如果您安裝了本產品的早期供應版本,且利用它建立了儲存程序除錯器啟動配置, 當在本產品的現行版本中使用這個配置時,可能無法辨認這些啟動配置設定。 當在產品的現行版本中開啟早期供應版本所儲存的啟動配置設定時,它們可能會回復預設值。
當您決定以除錯模式執行伺服器時,請考量下列事項:
- 伺服器啟動與執行的速度可能會比在非除錯模式下執行來得慢。
- WebSphere Application Server 編譯 JSP 頁面的時間會明顯變長。
請參閱 Java 開發工具 (JDT) 版本注意事項和工作台 (IDE) 版本注意事項,以取得 Java 開發工具已知的問題和限制的相關資訊。 本產品所安裝的主要產品 Readme 會鏈結這些版本注意事項。
- 「找不到 DLL」錯誤:如果啟動編譯的除錯階段作業時產生 Windows 訊息「找不到 DLL」,請移除 LOCPATH 環境變數。
- 在程式的程式碼或清單視圖中,找不到現有的字串:當使用大型程式碼或清單檔時,除錯器編輯器中的尋找功能可能無法尋找字串。 當編輯器只載入程式碼或清單的一部分時,就可能發生這個情況。
- 「儲存體」視圖顯示不正確的字元:當儲存體視圖格式化成為「十六進位和字元」時,十六進位資料是正確的,但只會正確顯示單位元組編碼的字元。
- 捲動跳過的行數超出預期:在除錯器編輯器中前後捲動時,跳過的行數可能會超出預期。 如果要移至特定行,請利用移至行號動作 (Ctrl-L)。
- 雙向 (BiDi) 限制:當您對以原生字碼頁以外的字碼頁編碼的 JSP 進行除錯時,您不能使用除錯器編輯器。
- 編譯語言除錯器:
- 在單位元組 (SBCS) 系統中,編譯語言除錯器不支援含有 0x7F 以上的字元的程式名稱或傳遞含有這類字元的程式參數。
- 不支援在被除錯端名稱和被除錯端引數中使用 NL 字元。
當執行熱交換時,如果正在進行 J9 JVM 除錯,且呼叫堆疊中有任何 SQLJ 方法,會出現堆疊中已作廢的方法對話框。 如果是 SQLJ 類別在進行熱交換,類別會重新載入 JVM 中,但在下次呼叫類別中的方法之前,不會執行新程式碼。
如果您要交換 SQLJ 類別,在現行除錯階段作業期間,這個類別的 SQLJ 岔斷點可能無法運作。
HTML Script 應用程式
當您試圖啟動 HTML Script 應用程式除錯階段作業時,可能會發生下列問題:
- 不斷出現「建立除錯目標時,發生錯誤」訊息。
- 當試圖連接至現有的瀏覽器以進行除錯時,除錯器無法取得執行中的瀏覽器清單。
您可以執行下列動作來更正這些問題:
- 先關閉所有執行中的瀏覽器和 Microsoft(R) Windows 檔案總管視窗,再嘗試啟動另一個除錯階段作業。
- 如果上述步驟無法解決問題,就是 mdm.exe 程序已毀損。 請關閉所有執行中的瀏覽器和檔案瀏覽器,再從 Windows(R) 工作管理員終止 mdm.exe。 重新啟動除錯階段作業。
當試圖連接至現有的瀏覽器以進行除錯時,請勿嘗試連接至 WebSphere Studio 工作台內部瀏覽器。 連接至內部瀏覽器來進行除錯會使工作台停止回應,可能會出現非預期的結果。
在 HTML Script 應用程式除錯階段作業期間,可能會發生下列問題:
- 當除錯階段作業暫停時,編輯器沒有強調顯示現行位置。
- 無法安裝岔斷點。
- 如果程式碼在工作台工作區之外,就無法顯示程式碼。
您可以執行下列動作來更正這些問題:
- 瀏覽器可能沒有正常載入頁面。 請在 Microsoft(R) Internet Explorer 中重新整理頁面(您可能需要執行這個動作許多次)。
- 如果重新整理頁面無法更正問題,請終止除錯階段作業。 請關閉所有執行中的瀏覽器和檔案瀏覽器,再重新啟動除錯階段作業。
- 如果上述步驟無法解決問題,就是 mdm.exe 程序已毀損。 請終止除錯階段作業、所有執行中的瀏覽器和檔案瀏覽器。 之後,從 Windows(R) 工作管理員終止 mdm.exe,再重新啟動除錯階段作業。
在 Active Script 除錯期間,工作台說明視窗或內部瀏覽器保持開啟狀態可能會干擾除錯階段作業,造成非預期的行為。
如果頁面部署在伺服器中,設在除錯階段作業之前的岔斷點會被忽略。 如果要設定岔斷點,請暫停除錯階段作業來呼叫程式碼,並在這個暫時頁面中設定岔斷點。 請參閱「設定字行岔斷點」,以取得詳細資料。
「作用中 Script」除錯器會利用 Microsoft(R) Script 除錯器來取得除錯資訊。 如果有 Microsoft(R) Script Debugger 的其他問題,請參閱它的 ReadMe.htm。
Script 主機應用程式
當您試圖啟動 Script 主機應用程式除錯階段作業時,可能會發生下列問題:
- 不斷出現「建立除錯目標時,發生錯誤」訊息。
您可以執行下列動作來更正這個問題:
- 先關閉所有執行中的瀏覽器和 Microsoft(R) Windows 檔案總管視窗,再嘗試啟動另一個除錯階段作業。
- 如果上述步驟無法解決問題,就是 mdm.exe 程序已毀損。 請關閉所有執行中的瀏覽器和檔案瀏覽器,再從 Windows(R) 工作管理員終止 mdm.exe。 重新啟動除錯階段作業。
(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.