Excel中if函數(shù)三個(gè)條件怎么填
1676
2022-05-30
一、調(diào)試參數(shù)解析
服務(wù)端開(kāi)啟調(diào)試模式,在jvm啟動(dòng)參數(shù)增加
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=XXX,server=y,suspend=n
參數(shù)解釋:
-Xdebug 啟用調(diào)試特性。
-Xrunjdwp 在目標(biāo) VM 中加載 JDWP 實(shí)現(xiàn)。它通過(guò)傳輸和 JDWP 協(xié)議與獨(dú)立的調(diào)試器應(yīng)用程序通信。
transport 這里通常使用套接字傳輸。但是在 Windows 平臺(tái)上也可以使用共享內(nèi)存?zhèn)鬏敗?/p>
server 如果值為 y,目標(biāo)應(yīng)用程序**將要連接的調(diào)試器應(yīng)用程序。否則,它將連接到特定地址上的調(diào)試器應(yīng)用程序。
address 這是連接的傳輸?shù)刂贰H绻?wù)器為 n,將嘗試連接到該地址上的調(diào)試器應(yīng)用程序。否則,將在這個(gè)端口**連接。
suspend 如果值為 y,目標(biāo) VM 將暫停,直到調(diào)試器應(yīng)用程序進(jìn)行連接。
客戶端連接遠(yuǎn)程調(diào)試端口
客戶端可以Intellij IDEA和eclipse等IDE開(kāi)發(fā)工具,本文以Intellij IDEA為例
二、遠(yuǎn)程調(diào)試原理
JPDA(Java Platform Debugger Architecture) 定義了一個(gè)完整獨(dú)立的體系,它由三個(gè)相對(duì)獨(dú)立的層次共同組成,而且規(guī)定了它們?nèi)咧g的交互方式,或者說(shuō)定義了它們通信的接口。這三個(gè)層次由低到高分別是?Java 虛擬機(jī)工具接口(JVMTI),Java 調(diào)試線協(xié)議(JDWP)以及 Java 調(diào)試接口(JDI)。這三個(gè)模塊把調(diào)試過(guò)程分解成幾個(gè)很自然的概念:調(diào)試者(debugger)和被調(diào)試者(debuggee),以及他們中間的通信器
在調(diào)試者和被調(diào)試著之間,調(diào)試命令和調(diào)試結(jié)果,都是通過(guò)?JDWP 的通訊協(xié)議傳輸?shù)摹K械拿畋环庋b成 JDWP 命令包,通過(guò)傳輸層發(fā)送給被調(diào)試者,被調(diào)試者接收到 JDWP 命令包后,解析這個(gè)命令并轉(zhuǎn)化為 JVMTI 的調(diào)用,在被調(diào)試者上運(yùn)行。類(lèi)似的,JVMTI 的運(yùn)行結(jié)果,被格式化成 JDWP 數(shù)據(jù)包,發(fā)送給調(diào)試者并返回給 JDI 調(diào)用。而調(diào)試器開(kāi)發(fā)人員就是通過(guò) JDI 得到數(shù)據(jù),發(fā)出指令
JVMTI(Java Virtual Machine Tool Interface)即指 Java 虛擬機(jī)工具接口,它是一套由虛擬機(jī)直接提供的 native 接口,它處于整個(gè) JPDA 體系的最底層,所有調(diào)試功能本質(zhì)上都需要通過(guò) JVMTI 來(lái)提供。通過(guò)這些接口,開(kāi)發(fā)人員不僅調(diào)試在該虛擬機(jī)上運(yùn)行的 Java 程序,還能查看它們運(yùn)行的狀態(tài),設(shè)置回調(diào)函數(shù),控制某些環(huán)境變量,從而優(yōu)化程序性能。
JDWP(Java Debug Wire Protocol)是一個(gè)為 Java 調(diào)試而設(shè)計(jì)的一個(gè)通訊交互協(xié)議,它定義了調(diào)試器和被調(diào)試程序之間傳遞的信息的格式。在 JPDA 體系中,作為前端(front-end)的調(diào)試者(debugger)進(jìn)程和后端(back-end)的被調(diào)試程序(debuggee)進(jìn)程之間的交互數(shù)據(jù)的格式就是由 JDWP 來(lái)描述的,它詳細(xì)完整地定義了請(qǐng)求命令、回應(yīng)數(shù)據(jù)和錯(cuò)誤代碼,保證了前端和后端的 JVMTI 和 JDI 的通信通暢。
JDI(Java Debug Interface)是三個(gè)模塊中最高層的接口,在多數(shù)的 JDK 中,它是由 Java 語(yǔ)言實(shí)現(xiàn)的。 JDI 由針對(duì)前端定義的接口組成,通過(guò)它,調(diào)試工具開(kāi)發(fā)人員就能通過(guò)前端虛擬機(jī)上的調(diào)試器來(lái)遠(yuǎn)程操控后端虛擬機(jī)上被調(diào)試程序的運(yùn)行。
三、常見(jiàn)調(diào)試技巧
3.1.條件斷點(diǎn)
如果你不知道如何添加斷點(diǎn),只需點(diǎn)擊左邊面板(行號(hào)前面)斷點(diǎn)即被創(chuàng)建。在調(diào)試界面中,“斷點(diǎn)”視圖會(huì)把所有被創(chuàng)建的斷點(diǎn)列出來(lái)。我們可以給它加一個(gè)布爾條件,也就是說(shuō),該斷點(diǎn)會(huì)被激活并且如果布爾條件為真,就會(huì)執(zhí)行該斷點(diǎn),否則將會(huì)跳過(guò)往下執(zhí)行。
3.2.異常斷點(diǎn)
在斷點(diǎn)視圖中,有一個(gè)J!標(biāo)記按鈕!我們可以使用該按鈕來(lái)添加一個(gè)Java異常斷點(diǎn)。例如,我們想讓程序在遇到空指針異常(NullPointerException)時(shí),仍然能繼續(xù)調(diào)試,那么我們可以使用該按鈕來(lái)添加一個(gè)異常斷點(diǎn)!
3.3.監(jiān)視點(diǎn)
這是一個(gè)非常好的功能,當(dāng)選定的屬性訪問(wèn)或修改程序時(shí),程序會(huì)停止執(zhí)行并允許進(jìn)行調(diào)試。在Outline視圖中選擇一個(gè)類(lèi)變量并從上下文菜單中選擇切換監(jiān)視點(diǎn),屬性監(jiān)視點(diǎn)將會(huì)被創(chuàng)建,在斷點(diǎn)(Breakpoints)視圖中會(huì)把所有監(jiān)視點(diǎn)用列表的形式顯示出來(lái)。
3.4.評(píng)估/檢查
按Ctrl+Shift+D或者Ctrl+Shift+I來(lái)顯示選定變量或者表達(dá)式的值。我們也可以給一個(gè)變量或表達(dá)式添加永久觀察點(diǎn),當(dāng)程序在調(diào)試時(shí),這些觀察點(diǎn)就會(huì)在表達(dá)式視圖(Expression view)中顯示出來(lái)。
3.5.修改變量值
在調(diào)試過(guò)程中,我們可以修改變量值。先選好一個(gè)變量然后進(jìn)入變量視圖(Variables view),根據(jù)變量類(lèi)型在其對(duì)應(yīng)的Value列里輸入值即可。
3.6.在Main函數(shù)里面停止執(zhí)行
在運(yùn)行/調(diào)試設(shè)置中,編輯配置對(duì)話框中有“Main”這個(gè)選項(xiàng)卡,我們可以勾選“Stop in main”這個(gè)復(fù)選框。如果選中,那么在調(diào)試一個(gè)基于main方法的Java程序時(shí),程序會(huì)在main方法第一行位置便停止執(zhí)行。
3.7.環(huán)境變量
并不是在系統(tǒng)屬性中添加環(huán)境變量,我們可以在編輯配置對(duì)話框中很方便地進(jìn)行添加。
3.8.Drop to Frame
這也是我最喜歡的一個(gè)功能。調(diào)試期間,可以重新跳到調(diào)用堆棧框架的開(kāi)始處執(zhí)行,并且變量值也會(huì)回到最初。根據(jù)回檔調(diào)整堆棧的深度,這個(gè)功能的主要用途是所有變量狀態(tài)可以快速回到方法開(kāi)始執(zhí)行時(shí)候的樣子,然后你可以重新進(jìn)行一遍一遍執(zhí)行,這樣就可以在你關(guān)注的地方進(jìn)行多次調(diào)試,但是在執(zhí)行過(guò)程中也會(huì)產(chǎn)生一些副作用,比如插入到數(shù)據(jù)庫(kù)里面的數(shù)據(jù)是無(wú)法刪除的!
3.9.分布過(guò)濾
當(dāng)我們進(jìn)入(F5)方法的時(shí)候,我們還可以訪問(wèn)其外部庫(kù)(比如java.*),我們可能不需要這個(gè)庫(kù),就可以在Perference選項(xiàng)卡頁(yè)面添加一個(gè)過(guò)濾器來(lái)排除這個(gè)包。
EI企業(yè)智能 智能數(shù)據(jù) 數(shù)據(jù)湖治理中心 DGC
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。