IP Library › Granted Patent US 12,602,312
Granted Patent B2
US 12,602,312 · App. 18/236,735 · Granted Apr 14, 2026

Configurable identification mechanism of debug parameters in multi-process or multi-threaded debugging

Inventors: Satish Chandra Oruganti (Bengaluru, IN); Ganesh Kumar Gupta (Bengalore, IN); Michael P. Rodgers (Lake Oswego, OR)
Assignee: Oracle International Corporation
G06F11/3698G06F11/366
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,602,312
App. No.
18/236,735
Granted
Apr 14, 2026
Kind
B2
Abstract

Systems, methods, and other embodiments associated with a configurable identification mechanism of debug parameters are described. In one embodiment, a method includes generating a graphical user interface (GUI) for a debugging program, where the GUI is configured to provide options to configure naming rules for threads during debugging of a computer process that includes multiple threads. The options to configure the naming rules may include configuring a naming rule that adds one or more context identifiers to a thread name. The thread name may be generated by automatically populating one or more of the context identifiers with a variable value that occurs during execution of the thread that corresponds to the one or more context identifiers. A conditional breakpoint may be controlled during debugging that is thread-specific based on a condition including at least one context identifier that matches a portion of the thread name.

Claims (75)

1 . A computer-implemented method, the method comprising:

generating a graphical user interface (GUI) for a debugging program, where the GUI is configured to provide options to configure naming rules for threads during debugging of a computer process that includes multiple threads;

for a target thread, configuring a naming rule to generate a thread name by:

displaying a plurality of available context identifiers that are selectable on the GUI;

receiving a selection of one or more context identifiers from the plurality of available context identifiers; and

generating the thread name for the target thread including the one or more context identifiers from the selection that form a unique thread name;

generating the thread name for the target thread by automatically populating the one or more context identifiers in the thread name with a variable value that occurs during execution of the target thread that corresponds to the one or more context identifiers; and

controlling a conditional breakpoint during the debugging that is thread-specific based on a condition including at least one context identifier that matches a portion of the thread name.

2 . The method of claim 1 , wherein the method further comprises: in response to an executing thread reaching the conditional breakpoint:

(i) stopping execution of the executing thread in response to the thread name of the executing thread matching the condition including the at least one context identifier; and

(ii) allowing continued execution of the executing thread in response to the thread name not matching the condition including the at least one context identifier.

3 . The method of claim 1 , wherein generating the thread name includes:

generating the thread name of the target thread including a string of the one or more context identifiers from the selection that are combined together to form the unique thread name.

4 . The method of claim 1 ,

wherein the context identifiers include a classification identifier that when added to a thread name of a set of threads, classify the set of threads into the same classification; and

generating a debugging parameter that is configured to apply only to threads that include the classification identifier in an associated thread name.

5 . The method of claim 1 , further comprising:

assigning a debug pointer to a thread name associated with one thread from the multiple threads; and

during the debugging, displaying the thread name over the associated debug pointer along with a distinct color that is visually different from other debug pointers.

6 . The method of claim 1 , further comprising:

in response to a first thread being stopped at a breakpoint during debugging, assigning a unique thread name to the first thread based on at least the one or more context identifiers applied by the naming rule; and

visually identifying thread debug parameters that are associated with the first thread based on the unique thread name of the first thread.

7 . A non-transitory computer-readable medium that includes stored thereon computer-executable instructions that when executed by at least a processor of a computer cause the computer to:

generate, by at least the processor, a graphical user interface (GUI) for a debugging program, where the GUI is configured to provide options to configure naming rules for threads during debugging of a computer process that includes multiple threads;

wherein the GUI is configured to provide the options to configure a naming rule for a target thread by:

displaying a plurality of available context identifiers that are selectable on the GUI;

receiving a selection of one or more context identifiers from the plurality of available context identifiers; and

generating the thread name for the target thread including a string of the one or more context identifiers from the selection that form a unique thread name;

apply the naming rule to create the thread name for the target thread;

provide options to define a conditional breakpoint during the debugging of the computer process that is thread-specific based on at least one breakpoint context identifier;

in response to an executing thread reaching the conditional breakpoint during debugging of the computer process:

(i) stop execution of the executing thread in response to the thread name of the executing thread including a context identifier that matches the at least one breakpoint context identifier; and

(ii) allow continued execution of the executing thread in response to the thread name not including the at least one breakpoint context identifier.

8 . The non-transitory computer-readable medium of claim 7 , wherein the naming rule adds the one or more context identifiers that are selected to the thread name of the target thread.

9 . The non-transitory computer-readable medium of claim 7 , further comprising instructions that when executed by at least the processor cause the processor to:

define a family context identifier and group a set of threads as a thread family from the multiple threads by inserting the family context identifier into each thread name of the set of threads that belong to the thread family; and

configure the conditional breakpoint to be conditional upon matching the family context identifier to stop execution of all threads in the thread family.

10 . The non-transitory computer-readable medium of claim 7 , further comprising instructions that when executed by at least the processor cause the processor to:

wherein the GUI allows one or more context identifiers to function as a classification identifier that when added to a thread name of a set of threads from the multiple threads, classify the set of threads into a specific classification; and

generate a thread-specific debugging parameter that is configured to apply only to threads classified in the specific classification based on an associated thread name including the classification identifier.

11 . The non-transitory computer-readable medium of claim 7 , further comprising instructions that when executed by at least the processor cause the processor to:

assign a debug pointer to a thread name associated with one thread from the multiple threads; and

during the debugging, display the thread name over the associated debug pointer along with a distinct color that is visually different from other debug pointers.

12 . The non-transitory computer-readable medium of claim 7 , further comprising instructions that when executed by at least the processor cause the processor to:

in response to a first thread being stopped at a breakpoint during debugging, assign a unique thread name to the first thread based on at least the one or more context identifiers applied by the naming rule; and

visually identity thread debug parameters that are associated with the first thread based on the unique thread name of the first thread.

13 . The non-transitory computer-readable medium of claim 7 , further comprising instructions that when executed by at least the processor cause the processor to:

generate the thread name by automatically populating one or more of the context identifiers with a context or variable value that occurs during execution of the thread that corresponds to the one or more context identifiers.

14 . A computing system, comprising:

at least one processor connected to at least one memory;

a non-transitory computer readable medium including instructions stored thereon that when executed by at least the processor cause the processor to:

generate, by at least the processor, a graphical user interface (GUI) for a debugging program, where the GUI is configured to provide options to configure naming rules for threads during debugging of a computer process that includes multiple threads;

wherein the options to configure the naming rules include configuring a naming rule that adds one or more context identifiers to a target thread name by:

displaying a plurality of available context identifiers that are selectable on the GUI;

receiving a selection of one or more context identifiers from the plurality of available context identifiers; and

generating a thread name for the target thread including a string of the one or more context identifiers from the selection that form a unique thread name;

provide options to define a conditional breakpoint during the debugging that is thread-specific based on a condition including at least one context identifier;

in response to an executing thread reaching the conditional breakpoint:

(i) stop execution of the executing thread in response to the thread name of the executing thread matching the condition including the at least one context identifier; and

(ii) allow continued execution of the executing thread in response to the thread name not matching the condition including the at least one context identifier.

15 . The computing system of claim 14 , wherein the instructions further include instructions that when executed by at least the processor cause the processor to:

generate the thread name of the target thread by adding the string of the one or more context identifiers from the selection including context identifer 1 to context identifier N that form the unique thread name.

16 . The computing system of claim 14 , further configured to:

define a family context identifier and group a set of threads as a thread family from the multiple threads by inserting the family context identifier into each thread name of the set of threads that belong to the thread family; and

configure the conditional breakpoint to be conditional upon matching the family context identifier to stop execution of all threads in the thread family.

17 . The computing system of claim 14 , wherein the GUI allows one or more context identifiers to function as a classification identifier that when added to a thread name of a set of threads from the multiple threads, classify the set of threads into a specific classification; and

wherein the computing system is further configured to generate a thread-specific debugging parameter that is configured to apply only to threads classified in the specific classification based on an associated thread name including the classification identifier.

18 . The computing system of claim 14 , further configured to:

assign a debug pointer to a thread name associated with one thread from the multiple threads; and

during the debugging, display the thread name over the associated debug pointer along with a distinct color that is visually different from other debug pointers.

19 . The computing system of claim 14 , further configured to:

in response to a first thread being stopped at a breakpoint during debugging, assign a unique thread name to the first thread based on at least the one or more context identifiers applied by the naming rule; and

visually identity thread debug parameters that are associated with the first thread based on the unique thread name of the first thread.

20 . The computing system of claim 14 , further configured to:

generate the thread name by automatically populating one or more of the context identifiers with a context or variable value that occurs during execution of the thread that corresponds to the one or more context identifiers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2023
From: ORUGANTI, SATISH CHANDRA; GUPTA, GANESH KUMAR; RODGERS, MICHAEL P.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 064667/0905 →
Continuity (1)
Related Publication 20250068551A1 · Feb 27, 2025
References Cited (19)
US 9632915B2 · Davis et al. · 2017 [cited by applicant]
US 10621068B2 · Kruszewski et al. · 2020 [cited by applicant]
US 20040221271A1 · Zeman · 2004 [cited by examiner]
US 20120159451A1 · Bates · 2012 [cited by examiner]
US 20140208323A1 · Goetz · 2014 [cited by examiner]
US 20140310714A1 · Chan · 2014 [cited by examiner]
US 20140366006A1 · Gottschlich · 2014 [cited by examiner]
US 20180089061A1 · Cook · 2018 [cited by examiner]
CN 114490338A · 2022 [cited by applicant]
David Millington; New IDE Plugin: Parnassus Parallel Debugger; Dec. 15, 2020; pp. 1-8; downloaded from: Https://blogs.embarcadero.com/new-ide-plugin-parnassus-parallel-debugger/. [cited by applicant]
Sampada Kathare; Easier Debugging of Multithreaded Software; Master's Projects, San Jose State Univeristy ScholarWorks; Fall 2012; pp. 1-41. [cited by applicant]
Jetbrains Rider Documentation; Debug Multithreaded Applications; Dec. 28, 2022; pp. 1-3. [cited by applicant]
microsoft.com; Debug Multithreaded Applications in Visual Studio; Apr. 30, 2022; pp. 1-3. [cited by applicant]
microsoft.com; View the Call Stack and Use the Call Stack Window in the DeBugger; Feb. 7, 2023; pp. 1-5. [cited by applicant]
microsoft.com; Debug Multiple Processes (C#, Visual Basic, C++); Apr. 30, 2022; pp. 1-8. [cited by applicant]
ibm.com; Using the Debug View; Jun. 10, 2021; pp. 1-5. [cited by applicant]
Jetbrains—IntelliJ IDEA 2022.3; Debug Code; Jan. 16, 2023; pp. 1-3; downloaded from: https://www.jetbrains.com/help/idea/debugging-code.html. [cited by applicant]
Jetbrains—IntelliJ IDEA 2022.3; Breakpoints; Jan. 24, 2023; pp. 1-7; downloaded from: https://www.jetbrains.com/help/idea/using-breakpoints.html. [cited by applicant]
Jetbrains—IntelliJ IDEA 2022.3; Customize Views; Jan. 17, 2023; pp. 1-14; downloaded from: https://www.jetbrains.com/help/idea/customizing-views.html. [cited by applicant]