jdwp-event command Set

  • Event?Command Set (64)
    • Composite?(100)

事件命令集 (64)
復合命令 (100)
目標虛擬機中的給定時間可能會發生多個事件。 例如,給定位置可能有多個斷點請求,或者您可能單步執行到與斷點請求相同的位置。 這些事件作為復合事件一起傳遞。 為了統一,即使只有一個事件要報告,也始終使用復合事件來傳遞事件。
組合在復合事件中的事件受到以下方式的限制:

僅適用于同一線程的其他線程啟動事件:
線程啟動事件
僅適用于同一線程的其他線程死亡事件:
線程死亡事件
僅與其他類一起為同一類準備活動:
類準備活動
僅與同一類的其他類卸載事件一起使用:
類卸載事件
僅與同一字段訪問的其他訪問觀察點事件一起使用:
訪問觀察點事件
僅與同一字段修改的其他修改觀察點事件一起使用:
修改觀察點事件
僅與其他監視器競爭同一監視器對象的輸入事件:
監控競爭進入事件
僅與其他監視器競爭同一監視器對象的輸入事件:
監控競爭輸入事件
僅適用于同一監視器對象的其他監視器等待事件:
監控等待事件
僅適用于同一監視器對象的其他監視器等待事件:
監控等待事件
僅與發生相同異常的其他 ExceptionEvent 一起使用:
異常事件
僅與該組的其他成員在同一位置且在同一線程中:
斷點事件
步驟事件
方法進入事件
方法退出事件

VM 啟動事件和VM 死亡事件是自動生成的事件。 這意味著不需要使用 EventRequest.Set 命令來請求它們。 VM Start 事件表示 VM 初始化完成。 VM 死亡事件表示 VM 終止。如果在自動生成的事件發生時連接了調試器,則該事件會從目標 VM 發送。 還可以使用 EventRequest.Set 命令請求自動生成的事件,因此當事件發生時,將從目標 VM 發送相同事件類型的多個事件。自動生成的事件在事件數據中的 requestID 字段設置為 0 的情況下發送 事件數據中的 suspendPolicy 字段的值取決于事件。 對于自動生成的 VM 啟動事件,未定義 suspendPolicy 的值,因此是特定于實現或配置的。 例如,在 Sun 實現中,在啟動時將 suspendPolicy 指定為 JDWP 代理的一個選項。自動生成的 VM 死亡事件會將 suspendPolicy 設置為 NONE。

eventKind 可能由如下類型 :

(1 ) Case VMStart - if?eventKind?is JDWP.EventKind.VM_START:

目標 VM 初始化的通知。 在主線程啟動之前和執行任何應用程序代碼之前接收此事件。 在此事件發生之前,已執行大量系統代碼并加載了許多系統類。 即使沒有明確請求,此事件始終由目標 VM 生成。

? ?(2) Case Breakpoint - if eventKind is JDWP.EventKind.BREAKPOINT:

目標虛擬機中的斷點通知。 斷點事件是在執行其所在位置的代碼之前生成的。

(3)Case SingleStep - if?eventKind?is JDWP.EventKind.SINGLE_STEP:

目標 VM 中步驟完成的通知。 步驟事件是在執行其所在位置的代碼之前生成的。

(4)Case MethodEntry - if?eventKind?is JDWP.EventKind.METHOD_ENTRY(方法步入):

目標 VM 中方法調用的通知。 該事件在調用方法中的任何代碼執行之前生成。 為本地(native)和非本地(non-native)方法生成方法進入事件。
在某些 VM 中,如果方法作為線程初始化的一部分被調用,則特定線程的方法進入事件可能會在其線程啟動事件發生之前發生。

(5)

Case MethodExit - if?eventKind?is JDWP.EventKind.METHOD_EXIT(方法退出):?

目標 VM 中方法返回的通知。 該事件在方法中所有代碼執行完畢后生成,但該事件的位置是方法中最后執行的位置。 本地(native)和非本機(native)方法都會生成方法退出事件。 如果方法因拋出異常而終止,則不會生成方法退出事件。

(6)

Case MethodExitWithReturnValue - if?eventKind?is JDWP.EventKind.METHOD_EXIT_WITH_RETURN_VALUE:

目標 VM 中方法返回的通知。 該事件在方法中所有代碼執行完畢后生成,但該事件的位置是方法中最后執行的位置。 本機和非本機方法都會生成方法退出事件。 如果方法因拋出異常而終止,則不會生成方法退出事件。

從 JDWP 1.6 版本開始。

(7)

Case MonitorContendedEnter - if?eventKind?is JDWP.EventKind.MONITOR_CONTENDED_ENTER:

通知目標 VM 中的線程正在嘗試進入已被另一個線程獲取的監視器。 需要 canRequestMonitorEvents 功能 - 請參閱新功能。

從 JDWP 1.6 版本開始。

(8)

Case MonitorContendedEntered - if?eventKind?is JDWP.EventKind.MONITOR_CONTENDED_ENTERED:

目標VM中的線程在等待另一個線程釋放后進入監視器的通知。 需要 canRequestMonitorEvents 功能 - 請參閱新功能。

從 JDWP 1.6 版本開始。

(9)

?? ?Case MonitorWait - if eventKind is JDWP.EventKind.MONITOR_WAIT:

線程即將等待監視器對象的通知。 需要 canRequestMonitorEvents 功能 - 請參閱新功能。

從 JDWP 1.6 版本開始。

(10)

Case MonitorWaited - if?eventKind?is JDWP.EventKind.MONITOR_WAITED:

目標 VM 中的線程已完成等待的通知 需要 canRequestMonitorEvents 功能 - 請參閱新功能。 一個監控對象。

從 JDWP 1.6 版本開始。

(11)

Case Exception - if?eventKind?is JDWP.EventKind.EXCEPTION:

目標 VM 中的異常通知。 如果異常是從非本地方法引發的,則異常事件將在引發異常的位置生成。 如果異常是從本地方法引發的,則異常事件將在引發異常后到達的第一個非本地位置生成。

(12)

Case ThreadStart - if?eventKind?is JDWP.EventKind.THREAD_START:

目標虛擬機中新運行線程的通知。 新線程可以是調用 java.lang.Thread.start 的結果,也可以是通過 JNI 將新線程附加到 VM 的結果。 該通知由新線程在執行開始前的某個時間生成。 由于這個計時,有可能在接收到該事件之前接收線程的其他事件。 (值得注意的是,方法進入事件和方法退出事件可能在線程初始化期間發生。VirtualMachine AllThreads 命令也可能在收到線程啟動事件之前返回線程。

請注意,此事件沒有提供有關線程對象創建的信息,該線程對象可能已經發生得更早,具體取決于正在調試的 VM。

(13)

Case ThreadDeath - if?eventKind?is JDWP.EventKind.THREAD_DEATH:

目標 VM 中已完成線程的通知。 該通知是由垂死線程在終止之前生成的。 由于這個時間安排,{@link VirtualMachine#allThreads} 可能會在收到此事件后返回此線程。

請注意,此事件不提供有關線程對象生命周期的信息。 它可能會也可能不會很快被收集,具體取決于目標虛擬機中存在哪些引用。

(14)

Case ClassPrepare - if?eventKind?is JDWP.EventKind.CLASS_PREPARE:

目標 VM 中的類準備通知。 有關類準備的定義,請參閱 JVM 規范。 不會為原始類(例如 java.lang.Integer.TYPE)生成類準備事件。

準備線程。 在極少數情況下,此事件可能發生在目標 VM 內的調試器系統線程中。 調試器線程采取預防措施來防止這些事件,但在某些情況下它們是無法避免的,特別是對于 java.lang.Error 的某些子類。 如果該事件是由調試器系統線程生成的,則此方法返回的值為 null,并且如果該事件請求的掛起策略是 EVENT_THREAD,則所有線程都將掛起,并且復合事件的掛起策略將反映此更改。 請注意,上面的討論不適用于目標虛擬機在其正常(非調試)操作期間創建的系統線程。

(15)

Case ClassUnload - if?eventKind?is JDWP.EventKind.CLASS_UNLOAD:

目標 VM 中的類卸載通知。

垃圾收集期間調試器后端受到嚴格限制,因此卸載信息受到很大限制。

(16)

Case FieldAccess - if?eventKind?is JDWP.EventKind.FIELD_ACCESS:

目標虛擬機中的現場訪問通知。 字段修改不被視為字段訪問。 需要 canWatchFieldAccess 功能 - 請參閱新功能。

(17)

?? ?Case FieldModification - if eventKind is JDWP.EventKind.FIELD_MODIFICATION:

目標虛擬機中字段修改的通知。 需要 canWatchFieldModification 功能 - 請參閱新功能。

(18)

Case VMDeath - if?eventKind?is JDWP.EventKind.VM_DEATH:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697237.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697237.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697237.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis:數據傾斜是什么?怎么應對熱點數據?

要知道什么是數據傾斜就的搞清楚redis是怎么存儲和訪問數據的。數據會按照一定的規則分布到不同槽上,然后槽又落在不同的機器節點上。比如把key進行crc16函數計算后的值對槽取模,然后槽會分配到不同的節點上。然后存取都會到對應的節點上去進行處理。 傾…

黑色金屬冶煉5G智能工廠數字孿生可視化管控系統,推進金屬冶煉行業數字化轉型

黑色金屬冶煉5G智能工廠數字孿生可視化管控系統,推進金屬冶煉行業數字化轉型。隨著科技的不斷發展,數字化轉型已經成為各行各業發展的必然趨勢。金屬冶煉行業作為傳統工業的重要組成部分,也面臨著數字化轉型的挑戰和機遇。為了推進金屬冶煉行…

在 Windows 上使用 VC++ 編譯 OpenSSL 源碼的步驟

在 Windows 上使用 VC 編譯 OpenSSL 源碼的步驟如下: 準備工作 安裝 Visual Studio 2017 或更高版本。安裝 Perl 腳本解釋器。安裝 NASM 匯編器。 編譯步驟 下載 OpenSSL 源碼。解壓 OpenSSL 源碼。打開命令行工具,并進入 OpenSSL 源碼目錄。運行以下…

Sublime text 3 配置

1.下載 打開官網鏈接:Download - Sublime Text或者去百度軟件中心搜索sublimeText3(根據自己的實際情況下載對應的版本) 2.安裝: 雙擊上一步下載下來的“Sublime Text Build 3083 x64 Setup.exe”,記得選擇“Add to…

IT資訊——全速推進“AI+鴻蒙”戰略布局!

文章目錄 每日一句正能量前言堅持長期研發投入全速推進“AI鴻蒙”戰略 人才戰略新章落地持續加碼核心技術生態建設 后記 每日一句正能量 人總要咽下一些委屈,然后一字不提的擦干眼淚往前走,沒有人能像白紙一樣沒有故事,成長的代價就是失去原來…

2023 龍蜥操作系統大會演講實錄:《兼容龍蜥的云原生大模型數據計算系統——πDataCS》

本文主要分三部分內容:第一部分介紹拓數派公司,第二部分介紹 πDataCS 產品,最后介紹 πDataCS 與龍蜥在生態上的合作。 杭州拓數派科技發展有限公司(簡稱“拓數派”,英文名稱“OpenPie”)是國內基礎數據計…

論文發表 | 頂會頂刊的實驗是如何煉成的

前言:Hello大家好,我是小哥談。在計算機科學研究領域,尤其是當你追求頂級會議和期刊的發表時,沒有什么?實驗設計更關鍵了。為什么這么說?理由很簡單。實驗不僅僅是你?來 檢驗假設的?段,它更是審稿?會重點關注和閱讀的部分,也是你驗證??研究多么創新、多么重要的內…

0221 解決萬得導出數據excel無法python讀入的問題

報錯如下&#xff1a; TypeError: <class openpyxl.styles.named_styles._NamedCellStyle>.name should be <class str> but value is <class NoneType> 原因分析&#xff1a; 萬得導出的xlsx帶有某些格式&#xff0c;比如首行加粗&#xff0c;excel桌面端工…

Linux之用戶和用戶組

目錄 一、簡介 1.1 用戶賬號分類 二、用戶 2.1 useradd 2.2 userdel 2.3 usermod 2.4 passwd 2.5 su 2.6 登出 三、用戶組 3.1 groupadd 3.2 groupdel 3.3 groupmod 3.4 newgrp 四、用戶賬號系統 4.1 /ect/passwd 4.2 常見的偽用戶如下所示 五、思維導圖 …

自動駕駛---Motion Planning之LaneChange

1 背景 在Apollo中,有比較多的Decider(決策器),上篇博客《自動駕駛---Motion Planning之Decider》中筆者也大概介紹了每個Deicder的作用。 本篇博客筆者主要介紹換道的決策內容,因為在自動駕駛中(嚴格意義上來講,目前還屬于輔助駕駛),變道的靈活性是用戶評價該功能是否…

安裝和配置awscli

1、 安裝awscli curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip ./aws/install ln -s /usr/local/bin/aws /usr/bin/aws安裝完成&#xff0c;檢查awscli版本號 aws --version輸出內容 aws-cli…

igolang學習3,golang 項目中配置gin的web框架

1.go 初始化 mod文件 go mod init gin-ranking 2.gin的crm框架 go get -u github.com/gin-gonic/gin 3.go.mod爆紅解決

Odoo17 不再支持視圖中的attrs和states

在最新的視圖設計中&#xff0c;屬性寫法發生了改變。以前我們使用的attrs和states屬性不再被支持&#xff0c;因此在現有模塊的視圖中&#xff0c;之前寫在attrs屬性中的invisiable、readonly、required等屬性需要全部拆分成獨立的屬性表達式。 odoo17之前的寫法 <field …

回調函數(Language C)

#源于指針的深入學習 對于回調函數&#xff0c;其實我們只需要了解一下函數指針即可使用回調函數了 什么是回調函數&#xff1f; 通俗的來講&#xff0c;它是一個函數指針變量&#xff08;注意&#xff1a;它不是指針函數&#xff0c;它們是不同的一個概念&#xff09; 函數…

靡語IT:JavaScript_概述、基礎

一、JavaScript 概述 javaScript 語言主要是完成頁面的數據驗證&#xff0c;因此它運行在客戶端&#xff0c; 需要運行瀏覽器來解析執行 JavaScript 代碼。js 是網景公司 &#xff08;Netscape&#xff09;的產品&#xff0c;最早取名為 LiveScript 最后借 java 的熱度 改為 j…

C++多線程同步(上)

多線程同步 引言總述詳情互斥鎖示例運行結果分析條件變量示例一實現分析優化運行結果示例二實現代碼運行結果示例三實現代碼運行結果讀寫鎖示例實現代碼注意分析運行結果附言實現運行結果運行結果個人心得引言 項目中使用多線程,會遇到兩種問題,一種是對共享資源的訪問時需要…

關于運行flutter app 運行到模擬器出現異常提示

Exception: Gradle task assembleDebug failed with exit code 1 解決方案&#xff1a; 1.講當前文件的distributionUrl值改為 https://mirrors.cloud.tencent.com/gradle/gradle-7.4-all.zip

Redis 學習筆記 3:黑馬點評

Redis 學習筆記 3&#xff1a;黑馬點評 準備工作 需要先導入項目相關資源&#xff1a; 數據庫文件 hmdp.sql后端代碼 hm-dianping.zip包括前端代碼的 Nginx 啟動后端代碼和 Nginx。 短信登錄 發送驗證碼 PostMapping("code") public Result sendCode(RequestP…

超市售貨|超市售貨管理小程序|基于微信小程序的超市售貨管理系統設計與實現(源碼+數據庫+文檔)

超市售貨管理小程序目錄 目錄 基于微信小程序的超市售貨管理系統設計與實現 一、前言 二、系統功能設計 三、系統實現 1、微信小程序前臺 2、管理員后臺 &#xff08;1&#xff09;商品管理 &#xff08;2&#xff09;出入庫管理 &#xff08;3&#xff09;公告管理 …

CrossOver2024虛擬機軟件的優缺點分別是什么?

CrossOver虛擬機軟件的優缺點分別如下&#xff1a; 優點&#xff1a; 無需雙系統&#xff1a;用戶可以在Mac或Linux系統上直接運行Windows應用程序&#xff0c;無需安裝雙系統&#xff0c;從而節省了硬盤空間并避免了系統切換的麻煩。易于安裝和使用&#xff1a;CrossOver具有…