盡管與瀏覽器的通信通過埠 9292 成功,但我無法讓 Eclipse Wild Web Developer 在斷點上停止。
拿這個簡單的頁面:test.html
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html>
<head></head>
<body>
<script src="test.js"></script>
</body>
</html>
和腳本,test.js
test = function() {
console.log("############ this function was totally called!");
}
test();
我在 Eclipse 中設定了 Chrome,它通過埠 9292 連接。在 Eclipse 控制臺中,我在設定斷點時看到以下內容:
############ this function was totally called!
....remove for brevity
From client: setBreakpoints({"source":{"name":"test.js","path":"/Users/jonathan.fisher/dev/projectx/projectx/src/main/webapp/test.js"},"breakpoints":[{"line":4}],"lines":[4],"sourceModified":false})
To client: {"seq":0,"type":"event","event":"output","body":{"category":"telemetry","output":"setBreakpointsRequest","data":{"Versions.DebugAdapterCore":"6.8.11","Versions.DebugAdapter":"4.13.0","Versions.Target.CRDPVersion":"1.3","Versions.Target.Revision":"@9f2101830b56fd2ea1408287f6c74e253ebcb7c6","Versions.Target.UserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36","Versions.Target.V8":"10.6.194.18","Versions.Target.Project":"Chrome","Versions.Target.Version":"106.0.5249.119","fileExt":".js"}}}
SourceMaps.setBP: /Users/jonathan.fisher/dev/projectx/projectx/src/main/webapp/test.js can't be resolved to a loaded script. It may just not be loaded yet.
Paths.setBP: No target url cached yet for client path: /Users/jonathan.fisher/dev/projectx/projectx/src/main/webapp/test.js.
→ To target: "{\"id\":17,\"method\":\"DOMDebugger.setInstrumentationBreakpoint\",\"params\":{\"eventName\":\"scriptFirstStatement\"}}"
← From target: {"id":17,"result":{}}
To client: {"seq":0,"type":"response","request_seq":5,"command":"setBreakpoints","success":true,"body":{"breakpoints":[{"id":1000,"verified":false,"message":"Breakpoint set but not yet bound"}]}}
To client: {"seq":0,"type":"event","event":"output","body":{"category":"telemetry","output":"ClientRequest/setBreakpoints","data":{"Versions.DebugAdapterCore":"6.8.11","Versions.DebugAdapter":"4.13.0","Versions.Target.CRDPVersion":"1.3","Versions.Target.Revision":"@9f2101830b56fd2ea1408287f6c74e253ebcb7c6","Versions.Target.UserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36","Versions.Target.V8":"10.6.194.18","Versions.Target.Project":"Chrome","Versions.Target.Version":"106.0.5249.119","successful":"true","timeTakenInMilliseconds":"3.689982","requestType":"request"}}}
我這一行是關鍵:
SourceMaps.setBP: /Users/jonathan.fisher/dev/projectx/projectx/src/main/webapp/test.js can't be resolved to a loaded script. It may just not be loaded yet
基本上 Eclipse 告訴瀏覽器安裝斷點,但 Chrome 不知道將其放入哪個檔案。
我不確定 Chrome 和 Eclipse 需要做什么才能弄清楚它們在談論同一個檔案。
我需要使用 Eclipse JEE Developer Edition 來解決這個問題,而不是 WebClipse 或其他平臺。
uj5u.com熱心網友回復:
我能夠讓它作業,但不完全是“自動”。像現在的大多數事情一樣,我們不再有模式定義,而是過度依賴非結構化資料和示例。我閱讀了很多它在 vscode 中的作業原理,并且能夠確定有一個名為pathMapping. 進一步深入研究源代碼,我可以通過將此 json 放在Chrome 除錯啟動配置選單Launch Parameters (Json):下的對話框中來使其作業:Debug Adapter
{
"pathMapping":{
"pws-7.0.0.jsfc.js.jsf":"/Users/jonathan.fisher/dev/jsf-components/src/main/resources/META-INF/resources/js/pws-7.0.0.jsfc.js"
}
}
json 鍵是瀏覽器顯示的檔案名,值是作業區中打開專案中檔案的完全限定路徑。
chrome 除錯器不提供 JVM 除錯器提供的所有功能(例如:條件斷點),但能夠在一個地方完成所有除錯是很好的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/520086.html
