# US 12,602,312 B2 · Configurable identification mechanism of debug parameters in multi-process or multi-threaded debugging

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,602,312 B2
- Document ID: US12602312B2
- Status: Granted
- Kind: B2
- Application number: 18/236,735
- Filed: 2023-08-22
- Published: 2025-02-27
- Granted: 2026-04-14
- Earliest claimed: 2023-08-22
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Satish Chandra Oruganti; Ganesh Kumar Gupta; Michael P. Rodgers
- Web page: https://patentgrep.com/patent/US12602312B2

## CPC

- G06F 11/362: Debugging of software
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 11/3636: {by tracing the execution of the program}
- G06F 11/366: {using diagnostics (G06F11/0703 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 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.

### Claim 8 (depends on 7)

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.

### Claim 9 (depends on 7)

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.

### Claim 10 (depends on 7)

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.

### Claim 11 (depends on 7)

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.

### Claim 12 (depends on 7)

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.

### Claim 13 (depends on 7)

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.

### Claim 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.

### Claim 15 (depends on 14)

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.

### Claim 16 (depends on 14)

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.

### Claim 17 (depends on 14)

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.

### Claim 18 (depends on 14)

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.

### Claim 19 (depends on 14)

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.

### Claim 20 (depends on 14)

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.
