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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

调试JVM

發(fā)布時(shí)間:2023/12/3 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调试JVM 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在某些(極少數(shù))情況下,您可能會(huì)遇到使JVM本身崩潰的情況。 我最近通過(guò)將ThreadGroup的名稱(chēng)設(shè)置為null來(lái)進(jìn)行管理 。 在這些情況下,調(diào)試JVM本身很有用,這樣可以更精確地定位崩潰。 這是完成此操作的步驟(它們特定于Linux,因?yàn)閃indows下沒(méi)有現(xiàn)成的調(diào)試器):
  • 安裝gdb(在Ubuntu下,這類(lèi)似于: sudo apt-get install build-essential )
  • 如果您使用的是OpenJDK,請(qǐng)為其安裝調(diào)試符號(hào),以便調(diào)試器可以提供更具可讀性的輸出(同樣,在Ubuntu下,這將是sudo apt-get install openjdk-6-dbg –如果您使用的是6,則用7代替6。最新的OpenJDK)

現(xiàn)在,只需在您的java命令前加上gdb --args :

gdb --args java Foo

當(dāng)出現(xiàn)gdb提示符(“(gdb)”)時(shí),鍵入“ run”(不帶引號(hào))以開(kāi)始程序的實(shí)際運(yùn)行。 崩潰發(fā)生后,您應(yīng)該顯示以下消息:

Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x6b195b70 (LWP 30273)] (gdb) Here you can use the commands “backtrace” and “backtrace full” to get an approximate idea of the crashsite. To continue running (although it will just exit most probably) input “c”. To exit (killing the JVM in the process) type “quit”. Consult the GDB tutorials available on the Internet for more commands and their parameters.

如果您是從Eclipse內(nèi)部進(jìn)行調(diào)試,則可以執(zhí)行以下操作:在配置屬性中,將JRE設(shè)置為“ Alternate JRE”,并將Java可執(zhí)行文件指定為“ javag”(此外,請(qǐng)確保已選中“分配控制臺(tái)”通用標(biāo)簽)。

現(xiàn)在轉(zhuǎn)到您的JDK運(yùn)行目錄(在我的情況下為/ usr / lib / jvm / java-7-openjdk-i386 / bin)并創(chuàng)建一個(gè)具有以下內(nèi)容的javag文件( sudo vim javag ):

#!/bin/bash gdb -x '/usr/lib/jvm/java-7-openjdk-i386/bin/javag-commands' --args '/usr/lib/jvm/java-7-openjdk-i386/bin/java' $*

還要?jiǎng)?chuàng)建具有以下內(nèi)容的javag-commands文件

run

最后,使javag可執(zhí)行( sudo +x chmod javag ),您就可以開(kāi)始了! 此解決方法是必需的,因?yàn)镋clipse在配置選項(xiàng)卡中不接受絕對(duì)路徑。 第二個(gè)文件用于自動(dòng)將“運(yùn)行”命令傳遞給gdb,而無(wú)需用戶(hù)在每次啟動(dòng)時(shí)自行鍵入。 另外,請(qǐng)記住,盡管GDB暫停了該進(jìn)程,但Java調(diào)試器(如Eclipse)無(wú)法與之通信,因此它們拋出各種錯(cuò)誤(如“目標(biāo)不響應(yīng)”)是正常的。
擁有無(wú)錯(cuò)誤的一年,但是如果您發(fā)現(xiàn)錯(cuò)誤,請(qǐng)讓它們至少具有可復(fù)制性

參考: Transylvania JUG博客上的JCG合作伙伴 Attila-Mihaly Balazs 調(diào)試JVM 。

相關(guān)文章 :

  • JVM選項(xiàng):-client vs -server
  • 如何解決生產(chǎn)問(wèn)題
  • 調(diào)試生產(chǎn)服務(wù)器– Eclipse和JBoss展示
  • 從CLI監(jiān)視OpenJDK
  • 您的代碼中有幾個(gè)錯(cuò)誤?

翻譯自: https://www.javacodegeeks.com/2012/01/debugging-jvm.html

總結(jié)

以上是生活随笔為你收集整理的调试JVM的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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