日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 调试 工具_Java调试器–权威的工具列表

發(fā)布時(shí)間:2023/12/3 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 调试 工具_Java调试器–权威的工具列表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java 調(diào)試 工具

Java調(diào)試是一個(gè)復(fù)雜的空間。 調(diào)試器的類型很多,工具也很多。 在此頁面中,我們將介紹7種類型的調(diào)試器之間的區(qū)別,并查看每個(gè)類別中的主要工具,以幫助您為正確的工作選擇正確的工具。

以下是我們介紹的調(diào)試器類型:

  • CLI調(diào)試器
  • IDE調(diào)試器
  • 構(gòu)建自己的調(diào)試器
  • 堆轉(zhuǎn)儲
  • 歷史調(diào)試器
  • 動態(tài)追蹤
  • 生產(chǎn)調(diào)試
  • 塔基皮

定義

使用廣泛的定義,錯(cuò)誤是實(shí)例,其中我們編寫的代碼與我們獲得的輸入不匹配。 這些的不同影響可以大致分為–

  • 意外的流控制 ,導(dǎo)致異?;虼a中我們不希望出現(xiàn)的位置。 在這里,調(diào)試器通常用于檢查代碼和狀態(tài)的相關(guān)性。
  • 意外的堆分配 。 在這種情況下,我們要么分配了太多的對象,要么分配了太大的對象。 保留對這些內(nèi)容的長期引用只會增加樂趣。 這就是堆分析器起作用的地方。
  • 延遲流量控制 。 這很可能與我們將錯(cuò)誤的輸入傳遞給外部調(diào)用(即“ SELECT * FROM everything”)或卡在長循環(huán)或無限循環(huán)中有關(guān)。 這是性能分析器通常會出現(xiàn)的地方。
  • 當(dāng)然,工具和類別之間存在重疊,因?yàn)樗鼈儽举|(zhì)上都具有相同的目的-讓我們看到我們所期望的狀態(tài),以便我們可以修復(fù)代碼,并使其達(dá)到期望。

    1.命令行調(diào)試器

    主要工具 :主要參與者是jdb ,它是JDK附帶的,與JVM等效,是gdb。 它具有命令行界面,可以連接到正在運(yùn)行的JVM。 像gdb一樣,它的功能也很強(qiáng)大,您可以使用jdb進(jìn)行任何功能,就像使用功能強(qiáng)大的IDE調(diào)試器一樣。 jdb有一個(gè)補(bǔ)充-jstack-它使您可以在給定時(shí)刻打印實(shí)時(shí)JVM的線程調(diào)用堆棧。 但是,這不會捕獲變量或堆狀態(tài)。

    以下情況下使用 :jdb的最大優(yōu)點(diǎn)是其可移植性。 您可以相當(dāng)快地將其安裝到服務(wù)器上,而不必遠(yuǎn)程連接調(diào)試器。 如果您正在處理服務(wù)器上的惡劣環(huán)境,并且有能力讓JVM檢查它,那么jdb是您最好的朋友。

    缺點(diǎn) :jdb和jstack的缺點(diǎn)是,與其他命令行工具一樣,它們在日常使用中效率不高。 這將我們帶入下一個(gè)類別。

    2. IDE調(diào)試器

    主要工具 :Eclipse和NetBeans是該類別中的兩個(gè)工具。 兩者都使用與jdb類似的技術(shù)來附加或啟動新的JVM。 盡管不是很輕便,但您確實(shí)會遇到麻煩,這可以使調(diào)試更短,更有趣。

    以下情況下使用 :假設(shè)您每天都不是Dexter( 神童 ,而不是連環(huán)殺手)。

    缺點(diǎn) :作為高端桌面應(yīng)用程序,它們不是您要在生產(chǎn)計(jì)算機(jī)上運(yùn)行的東西。 始終存在進(jìn)行遠(yuǎn)程調(diào)試的可能性,但是在復(fù)雜的環(huán)境中,解決該問題的可能性很小。

    3.構(gòu)建自己的調(diào)試器

    到目前為止,我們已經(jīng)描述的所有調(diào)試器都基于相同的JVM開放調(diào)試體系結(jié)構(gòu),最常見的是使用JDWP(Java調(diào)試器有線協(xié)議)與正在運(yùn)行的JVM通信。 JSwat是在此框架之上構(gòu)建的獨(dú)立調(diào)試器的示例。 是否想學(xué)習(xí)如何構(gòu)建自己的Java / Scala調(diào)試器? 請點(diǎn)擊這里 。

    以下情況下使用 :構(gòu)建自定義JVM擴(kuò)展,或者對JVM的工作方式非常感興趣。

    缺點(diǎn) :這是一件很復(fù)雜的事情,尤其是當(dāng)您不想影響目標(biāo)JVM的狀態(tài)時(shí),這是非常正確的事情,因此,您需要一個(gè)非常有說服力的理由來說明為什么不能使用經(jīng)過考驗(yàn)的現(xiàn)有工具。

    4.堆轉(zhuǎn)儲

    主要工具 :jmap,MAT。 在許多情況下,就像Rick Grimes一樣 ,您正在與死者打交道。 在這些情況下,您正在查看的是JVM堆的快照,而不是已停滯的實(shí)時(shí)JVM的快照。 JDK附帶的jmap允許您從實(shí)時(shí)JVM生成堆轉(zhuǎn)儲。 有很多工具可以讓您瀏覽和分析轉(zhuǎn)儲。 JDK附帶的jhat和visualVM在這方面做得很好。 Eclipse插件MAT和NetBean的HeapWalker是很好的選擇,因?yàn)樗鼈兝昧艘呀?jīng)強(qiáng)大的IDE UI。

    以下情況下使用 :發(fā)生復(fù)雜錯(cuò)誤且無法應(yīng)用常規(guī)調(diào)試技術(shù)(例如,該應(yīng)用程序在客戶的服務(wù)器上運(yùn)行)。 另一種選擇是通過打開JVM -HeapDumpOnOutOfMemoryError標(biāo)志來使用堆轉(zhuǎn)儲來分析內(nèi)存泄漏,以使JVM在堆耗盡后自動轉(zhuǎn)儲堆的內(nèi)容。

    缺點(diǎn) :使用堆轉(zhuǎn)儲的最大缺點(diǎn)是它們的重量與堆本身的重量一樣大(這很可能意味著堆在GB中)。 然后必須將其轉(zhuǎn)回給您進(jìn)行分析。 在生產(chǎn)中捕獲它們也不是在公園中漫步。

    5.歷史調(diào)試器

    主要工具 :這類工具取決于您是否能夠或不想停止JVM來收集狀態(tài)或進(jìn)行堆快照。 Chronon DVR是這種方法的一個(gè)很好的例子。 在此,調(diào)試器使用字節(jié)碼檢測從代碼本身內(nèi)部記錄數(shù)據(jù)。 這通常包括諸如調(diào)用方法的順序以及傳遞給它們的參數(shù)之類的事情。 這使調(diào)試器可以“重播”代碼,并讓您了解執(zhí)行時(shí)的流控制。 重播解決方案(由CA收購)是另一種使用不同方法的示例,其中記錄了對JVM的IO輸入,然后將其“重播”回活動實(shí)例–模擬執(zhí)行后的代碼。

    以下情況使用 此類工具的主要途徑通常是在質(zhì)量檢查期間,通過捕獲實(shí)際的運(yùn)行時(shí)狀態(tài),它們可以幫助使錯(cuò)誤更易于重現(xiàn)。 另一種情況是讓客戶或支持工程師臨時(shí)運(yùn)行該工具,以在應(yīng)用程序在生產(chǎn)中表現(xiàn)異常時(shí)從JVM捕獲狀態(tài)。

    缺點(diǎn) :這些工具的最大缺點(diǎn)是日志記錄會花費(fèi)您很多,而日志記錄會花費(fèi)很多。 這意味著歷史悠久的調(diào)試器可以將應(yīng)用程序的速度降低50%到一個(gè)數(shù)量級,從而限制了可以使用這些應(yīng)用程序的生產(chǎn)方案的數(shù)量。

    6.動態(tài)跟蹤

    主要工具 :BTrace。 使用此類別中的工具,您可以從正在運(yùn)行的JVM中有選擇地打印(“跟蹤”)狀態(tài)信息,而無需暫停它,也不必記錄正在發(fā)生的一切。 可以將它視為動態(tài)編織到一段新代碼中,該新代碼從代碼本身中打印值以供您查看。 BTrace是一個(gè)杰出的工具,它引入了自己的語法,可讓您定義要在代碼中跟蹤的位置和內(nèi)容。 該語法還設(shè)計(jì)為僅支持只讀操作,以防止您實(shí)際更改程序的狀態(tài)或引起無限循環(huán)。

    以下情況下使用 :最常用于嘗試針對特定問題調(diào)試服務(wù)器(例如,連接池已耗盡)或在不停止JVM執(zhí)行的情況下臨時(shí)收集特定統(tǒng)計(jì)信息的情況。

    缺點(diǎn) :與調(diào)試器一樣,通常不建議從生產(chǎn)服務(wù)器進(jìn)行動態(tài)跟蹤(并且很多時(shí)間是不允許的)。 還有一個(gè)小的學(xué)習(xí)曲線,可以在服務(wù)器環(huán)境中有效地使用動態(tài)跟蹤。

    7.生產(chǎn)調(diào)試

    主要工具 :用于記錄狀態(tài)的日志記錄框架(log4j,Logback)和用于大規(guī)模分析數(shù)據(jù)的日志分析器(Logstash,Splunk…)。

    以下情況下使用 :這是一個(gè)相當(dāng)困難的區(qū)域,因?yàn)楫?dāng)您處理生產(chǎn)系統(tǒng)時(shí),使JVM停頓以查看狀態(tài)或進(jìn)行堆轉(zhuǎn)儲通常是很大的禁忌。 那是因?yàn)槟鷮?shí)際上是要關(guān)閉服務(wù)器來調(diào)試它,這通常僅在極端情況下才能完成。

    我們通常在運(yùn)行時(shí)從JVM中提取狀態(tài)而不停止?fàn)顟B(tài)的方法是通過有選擇地將變量值記錄到文件中(通常是在Java記錄框架的幫助下)。 稍后,我們可以使用各種工具來解析數(shù)據(jù),從簡單到尾部,一直到可擴(kuò)展的日志分析器,例如開源Logstash和企業(yè)Splunk。

    缺點(diǎn) :這里最大的缺點(diǎn)是我們當(dāng)然需要事先知道(并有效地執(zhí)行)登錄。 日志也可以很快被填滿,并且無需開發(fā)團(tuán)隊(duì)的大量紀(jì)律,還可能包含很多不必要的數(shù)據(jù)或錯(cuò)過了一些關(guān)鍵數(shù)據(jù)。

    科學(xué)家觀察到,將日志文件中的數(shù)據(jù)拼湊在一起以了解導(dǎo)致錯(cuò)誤的變量狀態(tài),這是夜間和假日消遣的一種非常受歡迎的開發(fā)人員。


    我們在構(gòu)建Takipi時(shí)考慮了一個(gè)簡單的對象。 我們想讓開發(fā)人員輕松知道何時(shí)以及為何中斷生產(chǎn)代碼。 這意味著,無論何時(shí)開始發(fā)生新的異?;蛉罩惧e(cuò)誤,我們都會捕獲它并通知您。 第二部分是跟蹤部署,以說明問題從哪個(gè)開始以及發(fā)生的頻率。 最后(也是最有趣的部分)是生產(chǎn)調(diào)試部分。 對于每個(gè)異?;蝈e(cuò)誤,Takipi會在錯(cuò)誤發(fā)生時(shí)向您顯示確切的源代碼和變量狀態(tài)(包括本地值和對象值),就像發(fā)生錯(cuò)誤時(shí)您在那兒一樣。

    參考: Java Debugger –我們的JCG合作伙伴 Tal Weiss在Takipi博客上的權(quán)威 工具清單 。

    翻譯自: https://www.javacodegeeks.com/2013/12/java-debugger-the-definitive-list-of-tools.html

    java 調(diào)試 工具

    總結(jié)

    以上是生活随笔為你收集整理的java 调试 工具_Java调试器–权威的工具列表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲专区欧美 | 免费激情片| 国产热99| 17c精品麻豆一区二区免费 | 国产51精品 | 青青草原伊人网 | 亚洲精品乱码久久久久久不卡 | 中文一区二区在线观看 | 哈利波特3在线观看免费版英文版 | 8ppav | 91色九色| 男人操女人动态图 | 长篇乱肉合集乱500小说日本 | 欧美又粗又深又猛又爽啪啪九色 | 免费无码国产精品 | 亚洲黄色在线网站 | 久久麻豆视频 | 极品白嫩少妇无套内谢 | 久草最新网址 | 中国女人内96xxxxx | 色版视频 | 在线观看免费视频黄 | 成人免费视频软件网站 | 欧美成人aaa片一区国产精品 | 影音先锋中文字幕人妻 | 伊人久色 | 富二代成人短视频 | 91大神久久 | 日韩国产毛片 | 无码aⅴ精品一区二区三区浪潮 | 91在线观看 | 国产精品久久久久久久久久久免费看 | 佐山爱av在线 | 麻豆免费在线视频 | 日本成人在线播放 | 国产福利精品一区 | 欧美三级大片 | 操大逼网站 | 成人国产视频在线观看 | 女人被狂躁c到高潮喷水电影 | 日本男人的天堂 | 好吊色视频一区二区三区 | 欧美亚洲日本在线 | 美女屁股网站 | 黄色三级av | 曰女同女同中文字幕 | 免费三片60分钟 | 综合久草| 亚洲免费精品视频 | 黄色在线网站 | 色八戒av| 色综合天天 | 亚欧在线 | 超碰在线观看av | 香蕉视频在线观看黄 | 欧美三级午夜理伦三级中视频 | 1024手机看片日韩 | 中文字幕电影一区 | 久久国产欧美日韩精品 | 亚洲一区欧洲一区 | 色漫在线观看 | 黄wwwww| 一区二区三区精彩视频 | 亚洲欧美视频一区二区 | 欧美午夜一区二区 | av一区二区三 | 午夜精品视频 | 成年人在线免费观看视频网站 | 朝鲜女人性猛交 | 欧美一级欧美三级 | 福利一区二区在线观看 | 日韩在线视频看看 | 在线观看亚洲视频 | 国产日韩精品一区二区三区在线 | 男人肌肌桶女人肌肌 | 少妇av片 | 久久久久久久久久久久久国产 | 制服丝袜一区二区三区 | 在线观看日批视频 | 欧美日韩精品综合 | 日韩久久久久久久久久 | 国产欧美日韩精品区一区二污污污 | 免费中文字幕 | 男生和女生一起差差差视频 | 草逼视频网 | 亚洲精品无码久久久久 | 玖玖在线免费视频 | 丝袜淫脚 | 特级毛片爽www免费版 | 久久激情免费视频 | 日本少妇videos高潮 | 成人在线视频免费播放 | 国产高潮视频在线观看 | 重口味av | 天天色播 | 男人扒女人添高潮视频 | 日韩黄色一区二区 | 97精品视频在线观看 | 久久国产三级 |