You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+52-52Lines changed: 52 additions & 52 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,96 +16,97 @@
16
16
---
17
17
18
18
19
-
## Overview
19
+
## 🌟 Overview
20
20
21
-
**Java DebugX** is a Visual Studio Code extension aimed at improving Java debugging by offering advanced macro recording and playback features. It allows developers to record key debugging events such as step-in, step-out, and breakpointsin a macro JSON format. This feature enables users to capture complex debugging sessions and replay them later, saving time and eliminating the need to manually redo the debugging process.
21
+
**Java DebugX** is a powerful Visual Studio Code extension designed to enhance your Java debugging experience with advanced macro recording and playback features. 📽️✨ With Java DebugX, you can record essential debugging events—like **step-in**, **step-out**, and **breakpoints**—in a structured JSON format.
22
22
23
+
This feature enables you to capture intricate debugging sessions and replay them effortlessly, saving time and sparing you from manually redoing steps. ⏱️🔄 Perfect for complex Java applications, Java DebugX streamlines your workflow and boosts your productivity. ⚡
23
24
24
25
## Features
25
26
26
-
-**Macro Recording and Playback**: Record debugging sessions, including step-ins, step-outs, and breakpoints. Play back the recorded sessions at any time.
27
+
-🎥 **Macro Recording & Playback**: Effortlessly record your debugging sessions, capturing all **step-ins**, **step-outs**, and **breakpoints**. Rewind and replay these recorded sessions anytime for quick and efficient troubleshooting! ⏪⏯️
Java DebugX is designed to work seamlessly with **multi-threaded debugging**! 🎉 Now, you can record and replay debugging sessions even in complex, multi-threaded applications. This enhancement captures step-in, step-over, and other critical debugging events across threads, allowing you to efficiently review and trace through complex scenarios without retracing steps manually. 🚀
-**Customizable Bridge Configurations**: Define custom bridge classes and methods to integrate additional debugging insights.
33
-
-**Advanced Debug Insights**: View detailed, real-time debugging information in a dedicated Insights view.
36
+
-🔧 **Customizable Bridge Configurations**: Set up custom bridge classes and methods to bring extra insights into your debugging process, tailored to your needs. 🌉
37
+
-🕵️♂️ **Advanced Debug Insights**: Access in-depth, real-time debugging details in the specialized **Insights** view for more informed problem-solving. 📊
-**Search External Files**: Search and index external files during debugging to improve traceability.
37
-
-**Customizable File Patterns**: Define which files to include when indexing external files.
40
+
-🔍 **Search External Files**: Seamlessly search and index external files during debugging to boost traceability and streamline your workflow. 📁
41
+
-🎛️ **Customizable File Patterns**: Tailor which files to include in indexing external files by defining custom file patterns for optimized debugging. 📝
38
42
39
43
40
44
41
45
42
-
## Installation
46
+
## 🚀 Installation
43
47
44
48
To install the **Java DebugX** extension in Visual Studio Code:
45
49
46
50
1. Open **Visual Studio Code**.
47
51
2. Go to the **Extensions** view by clicking on the Extensions icon in the Activity Bar or pressing `Ctrl+Shift+X`.
48
-
3. Search for **Java DebugX**.
49
-
4. Click **Install**.
50
-
51
-
Here's the updated section with the Open VSX URL included:
52
+
3. 🔍 Search for **Java DebugX**.
53
+
4. Click **Install** to add it to your editor.
52
54
53
55
> Alternatively, you can install it directly from the [Marketplace](https://marketplace.visualstudio.com/items?itemName=soumyaprasadrana.vscode-java-debugx) or from [Open VSX](https://open-vsx.org/extension/soumyaprasadrana/vscode-java-debugx).
54
56
55
-
## Getting Started
56
-
57
-
Once installed, the extension is activated when a Java project is opened. You can then start using the extension to record, play, and analyze debugging sessions.
57
+
## 🎉 Getting Started
58
58
59
-
### Key Features and Commands
59
+
After installing **Java DebugX**, it activates automatically whenever you open a Java project. You can now dive right in and start using its powerful features to record, play back, and analyze your debugging sessions for a more efficient development workflow! 🛠️
60
60
61
-
-**Start Macro Recording**: Begin recording your debugging session. This will capture step-ins, step-outs, and breakpoints.
62
-
-**Stop Macro Recording**: Stop recording and save the session data.
-**Debug Toolbar** 🛠️: Commands for controlling the macro recording and playback are available in the debug toolbar.
92
91
93
-
### Generating a Sample Bridge Config
92
+
##Example Usage 💡
94
93
95
-
To generate a sample bridge configuration file:
94
+
### Typical Scenario 🚀
96
95
97
-
1. Open the Command Palette (`Ctrl+Shift+P`).
98
-
2. Search for and select **Generate Sample Bridge Config**.
96
+
Here’s a typical scenario: You’re debugging a large Java application and find a potential root cause. But after stepping forward, you realize you need to repeat the process to verify something. In a real-life setting, this is where Java DebugX shines—you can record the session once, then replay it up to the exact point you need to examine again.
99
97
100
-
This will generate a new bridge configuration file in your workspace, which you can modify to create your custom bridge logic.
98
+
**Java DebugX** even includes enhanced diagnostics to help when your macro takes a wrong path. If your playback reaches a point that differs from the expected line (like reaching an unexpected catch block or exception), DebugX will try to gather diagnostics and log them to a file, giving you a better understanding of potential issues. 📂🛠️
101
99
100
+
### Generating a Sample Bridge Config ⚙️
102
101
102
+
To generate a sample bridge configuration file:
103
103
104
-
## Limitation
104
+
1. Open the Command Palette (`Ctrl+Shift+P`) 🔍.
105
+
2. Search for and select **Generate Sample Bridge Config** 📝.
105
106
106
-
The macro recording feature is well-tested when your debug session interacts with only a single thread. However, if you are debugging multiple threads simultaneously, the events will be recorded but playback might not work as expected. We are actively working on improving support for multi-threaded debugging sessions.
107
+
This will generate a new bridge configuration file in your workspace, which you can modify to create your custom bridge logic. 🔧
107
108
108
-
## Development
109
+
## Development 🛠️
109
110
110
111
If you'd like to contribute or develop the extension locally, follow these steps:
111
112
@@ -117,19 +118,18 @@ If you'd like to contribute or develop the extension locally, follow these steps
117
118
```bash
118
119
npm install
119
120
```
120
-
3. Launch the extension in VS Code with from debug view
121
+
3. Launch the extension in VS Code from the debug view ▶️
121
122
122
-
## License
123
+
## License 📜
123
124
124
125
This project is licensed under the [SEE LICENSE IN LICENSE](LICENSE).
If you encounter any issues or need help, please visit the [issues page](https://github.com/soumyaprasadrana/vscode-java-debugx/issues) and open a new issue or check for existing discussions.
@@ -186,13 +189,30 @@ export class DebugSessionsTracker implements vscode.DebugAdapterTracker {
186
189
187
190
onWillReceiveMessage(message: any){
188
191
//console.log("onWillReceiveMessage", message);
192
+
if(message&&message.type&&message.type=='request'&&(message.command=='threads'||message.command=='evaluate'||message.command=='variables'))return;//Performance ; We don't need these request for macro processing
if(message&&message.type&&message.type=='response'&&(message.command=='threads'||message.command=='evaluate'||message.command=='variables'))return;//Performance ; We don't need these request for macro processing
0 commit comments