IP Library Granted Patent US 7,302,675
Granted Patent B2
US 7,302,675 · App. 09/941,057 · Granted Nov 27, 2007

System and method for analyzing a graphical program using debugging graphical programs

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 7,302,675
App. No.
09/941,057
Granted
Nov 27, 2007
Kind
B2
Abstract

A system and method for implementing a debugging graphical program in a main graphical program. A user can associate a debugging graphical program with a wire in a data flow diagram in order to debug and/or analyze the main graphical program. This association does not change or require recompilation of the main graphical program. The debugging graphical program, or smart probe, receives the data from the main graphical program, analyzes this data, and can perform one of several actions. The debugging graphical program can display the data in the wire, generate statistics based on received data, log statistics or data to a file, or perform other analysis functions. The debugging graphical program can also cause the main graphical program into halting execution, entering single stepping mode, etc. The user may choose a debugging graphical program already present, or create one using graphical programming techniques.

Claims (131)

1. A computer-implemented method for creating a graphical program, the method comprising:

creating a first graphical program using a graphical programming development environment, wherein said creating comprises interconnecting at least two of a first plurality of graphical program nodes or icons, wherein the first graphical program comprises the first plurality of interconnected graphical program nodes or icons which graphically represents functionality of the first graphical program, and wherein the first graphical program is executable by a computer system to perform the functionality;

storing the first graphical program in a memory; and

associating a debugging graphical program at a debugging location in the first graphical program, wherein said associating does not modify the functionality of the first graphical program, wherein the debugging graphical program comprises a second plurality of interconnected graphical program nodes or icons that graphically represents functionality of the debugging graphical program wherein the debugging graphical program was created using the graphical programming development environment;

wherein the debugging graphical program is executable during execution of the first graphical program to aid in debugging at least a portion of the first graphical program.

2. The computer-implemented method of claim 1 , wherein said associating does not require a re-compilation of the first graphical program.

3. The computer-implemented method of claim 1 , further comprising:

executing the first graphical program up to the debugging location;

executing the debugging graphical program after executing the first graphical program up to the debugging location; and

the debugging graphical program generating debugging results, wherein the debugging results are useful in analyzing at least a portion of the first graphical program.

4. The computer-implemented method of claim 3 , further comprising:

completing execution of the first graphical program based on the debugging results of said executing the debugging graphical program.

5. The computer-implemented method of claim 3 ,

wherein said executing the debugging graphical program includes displaying the debugging results of the debugging graphical program.

6. The computer-implemented method of claim 3 , wherein said executing the debugging graphical program comprises:

receiving data from the first graphical program; and

performing one or more of:

displaying the data from the first graphical program; and/or

logging the data from the first graphical program to a file.

7. The computer-implemented method of claim 3 , wherein said executing the debugging graphical program comprises:

receiving data from the first graphical program;

generating statistics based on the received data; and

displaying the statistics.

8. The computer-implemented method of claim 7 , wherein said statistics comprise one or more of:

data generated by the debugging graphical program;

data generated by a plurality of executions of the debugging graphical program during a corresponding plurality of executions of the first graphical program, wherein said data generated by the plurality of executions of the debugging graphical program includes differences in execution times between the plurality of executions of the debugging graphical program, wherein said differences in execution times are useable in optimizing performance the first graphical program.

9. The computer-implemented method of claim 3 ,

wherein said completing execution of the first graphical program is performed in a single stepping mode based on the debugging results of said executing the debugging graphical program.

10. The computer-implemented method of claim 1 , further comprising:

executing the first graphical program up to the debugging location, wherein the first graphical program generates data at the debugging location;

providing the data to the debugging graphical program;

executing the debugging graphical program, wherein the debugging graphical program uses the data;

the debugging graphical program generating debugging results;

based on the debugging results, performing one or more of: halting execution of the first graphical program; entering single stepping mode in the first graphical program; and/or completing execution of the first graphical program.

11. The computer-implemented method of claim 10 , wherein the first graphical program executes up to the debugging location where the debugging graphical program is associated, and waits for user input.

12. The computer-implemented method of claim 1 ,

wherein the first graphical program comprises a plurality of data flow paths;

wherein said associating the debugging graphical program at the location in the first graphical program comprises associating the debugging graphical program at a first data flow path in the first graphical program.

13. The computer-implemented method of claim 12 , wherein said associating comprises:

storing information in at least one data structure, wherein the information comprises information regarding the first graphical program, the debugging graphical program, and the location where the debugging graphical program is attached along the first data flow path of the first graphical program.

14. The computer-implemented method of claim 12 , wherein said associating comprises:

receiving user input from a pointing device selecting the first data flow path in the first graphical program, wherein the first data flow path is configured to carry data of a first data type;

displaying a plurality of debugging graphical programs, wherein each of the plurality of debugging graphical programs is compatible with the first data type, and wherein the plurality debugging graphical programs comprises the debugging graphical program; and

receiving user input selecting the debugging graphical program from the plurality of debugging graphical programs.

15. The computer-implemented method of claim 12 , wherein said associating comprises:

receiving user input selecting the first data flow path in the first graphical program, wherein the first data flow path is configured to carry data of a first data type;

determining the first data type of the first data flow path;

displaying a plurality of debugging graphical programs appropriate for the first data type of the first data flow path; and

receiving user input selecting the debugging graphical program from the plurality of debugging graphical programs appropriate for the first data type of the first data flow path.

16. The computer-implemented method of claim 1 , wherein said associating the debugging graphical program at the debugging location in the first graphical program comprises associating the debugging graphical program at a node or icon in the first graphical program.

17. The computer-implemented method of claim 1 , further comprising:

disassociating the debugging graphical program from the first graphical program, wherein said disassociating does not modify the first graphical program and/or does not require a re-compilation of the first graphical program.

18. The computer-implemented method of claim 1 ,

wherein the first graphical program is located on a first computer system;

wherein the debugging graphical program is located on a second computer system, wherein the second computer system is coupled to the first computer system over a network.

19. The computer-implemented method of claim 18 , the method further comprising:

executing the first graphical program on the first computer system up to the debugging location;

executing the debugging graphical program on the second computer system, wherein the debugging graphical program is executed after executing the first graphical program on the first computer system up to the debugging location;

the debugging graphical program generating debugging results on the second computer system; and

providing the debugging results from the second computer system to the first computer system.

20. The computer-implemented method of claim 1 ,

wherein the first graphical program is located on a first computer system, wherein the first computer system is a target computer system coupled to or comprised in a second computer system;

wherein the debugging graphical program is located on and executed on the first computer system.

21. The computer-implemented method of claim 1 ,

wherein the first graphical program is located on a first computer system, wherein the first computer system is a target computer system coupled to or comprised in a second computer system;

wherein the debugging graphical program is located on and executed on the second computer system.

22. A computer-implemented method for executing a first graphical program, the method comprising:

executing the first graphical program up to a debugging location, wherein the first graphical program comprises a first plurality of interconnected graphical program nodes or icons that graphically represents functionality of the first graphical program, and wherein the first graphical program is executable by a computer system to perform the functionality, wherein the first graphical program generates data at the debugging location, wherein the first graphical program was created using a graphical programming development environment;

providing the data to a debugging graphical program, wherein the debugging graphical program comprises a second plurality of interconnected graphical program nodes or icons that graphically represents functionality of the debugging graphical program, wherein the debugging graphical program was created using the graphical programming development environment;

executing the debugging graphical program, wherein the debugging graphical program uses the data;

the debugging graphical program generating debugging results;

wherein use of the debugging graphical program does not require modification or re-compilation of the first graphical program.

23. The computer-implemented method of claim 22 ,

after the debugging graphical program generates debugging results, performing one or more of: halting execution of the first graphical program; entering a single stepping mode in the first graphical program; and/or completing execution of the first graphical program.

24. The computer-implemented method of claim 22 , further comprising:

associating the debugging graphical program at the debugging location in the first graphical program;

wherein said associating does not require modification or recompilation of the first graphical program.

25. The computer-implemented method of claim 22 ,

wherein the first graphical program is located on a first computer system;

wherein the debugging graphical program is located on a second computer system, wherein the second computer system is coupled to the first computer system over a network;

wherein the first graphical program executes on the first computer system up to the debugging location;

wherein the debugging graphical program executes on the second computer system, wherein the debugging graphical program is executed after executing the first graphical program on the first computer system up to the debugging location; and

wherein the debugging graphical program generates debugging results on the second computer system.

26. A computer-implemented method for analyzing a first graphical program, the method comprising:

storing the first graphical program in a memory of a computer system, wherein the first graphical program comprises a first plurality of interconnected graphical program nodes or icons that graphically represents functionality of the first graphical program, and wherein the first graphical program is executable by the computer system to perform the functionality, wherein the first graphical program was created using a graphical programming development environment;

associating a second graphical program at a location in the first graphical program, wherein said associating does not modify the functionality of the first graphical program, wherein the second graphical program comprises a second plurality of interconnected graphical program nodes or icons that graphically represents functionality of the second graphical program, wherein the second graphical program was created using the graphical programming development environment;

wherein the second graphical program is executable during execution of the first graphical program to aid in analyzing at least a portion of the first graphical program.

27. The computer-implemented method of claim 26 , wherein said associating does not require a re-compilation of the first graphical program.

28. The computer-implemented method of claim 26 , further comprising:

executing the first graphical program up to the location;

executing the second graphical program after executing the first graphical program up to the location; and

the second graphical program generating results, wherein the results are useful in analyzing at least a portion of the first graphical program.

29. The computer-implemented method of claim 26 , further comprising:

executing the first graphical program up to the location, wherein the first graphical program generates data at the location;

providing the data to the second graphical program;

executing the second graphical program, wherein the second graphical program uses the data;

the second graphical program generating results;

based on the results, performing one or more of: halting execution of the first graphical program; entering a single stepping mode in the first graphical program; and/or completing execution of the first graphical program.

30. A memory medium comprising program instructions for analyzing a first graphical program, wherein the program instructions are executable to implement:

storing the first graphical program in a memory of a computer system, wherein the first graphical program comprises a first plurality of interconnected graphical program nodes or icons that graphically represents functionality of the first graphical program, and wherein the first graphical program is executable by the computer system to perform the functionality, wherein the first graphical program was created using a graphical programming development environment;

associating a second graphical program at a location in the first graphical program, wherein said associating does not modify the functionality of the first graphical program, wherein the second graphical program comprises a second plurality of interconnected graphical program nodes or icons that graphically represents functionality of the second graphical program, wherein the second graphical program was created using the graphical programming development environment;

wherein the second graphical program is executable during execution of the first graphical program to aid in analyzing at least a portion of the first graphical program.

31. The memory medium of claim 30 , wherein said associating does not require a re-compilation of the first graphical program.

32. The memory medium of claim 30 , wherein the program instructions are further executable to implement:

executing the first graphical program up to the location;

executing the second graphical program after executing the first graphical program up to the location; and

the second graphical program generating results, wherein the results are useful in analyzing at least a portion of the first graphical program.

33. The memory medium of claim 30 , wherein the program instructions are further executable to implement:

executing the first graphical program up to the location, wherein the first graphical program generates data at the location;

providing the data to the second graphical program;

executing the second graphical program, wherein the second graphical program uses the data;

the second graphical program generating results;

based on the results, performing one or more of: halting execution of the first graphical program; entering a single stepping mode in the first graphical program; and/or completing execution of the first graphical program.

34. A memory medium comprising:

a first graphical program, wherein the first graphical program comprises a first plurality of interconnected nodes which visually indicate functionality of the first graphical program, and wherein the first graphical program is executable by a computer system to perform the functionality, wherein the first graphical program was created using a graphical programming development environment;

a second graphical program, wherein the second graphical program comprises a second plurality of interconnected graphical program nodes or icons that graphically represents functionality of the second graphical program, wherein the second graphical program was created using the graphical programming development environment;

a data structure which is operable to store information associating the second graphical program with a location in the first graphical program, wherein the functionality of the first graphical program is not modified by the second graphical program;

wherein the second graphical program is executable during execution of the first graphical program to aid in analyzing at least a portion of the first graphical program.

35. The memory medium of claim 34 , further comprising program instructions which are executable to:

execute the first graphical program up to the location, wherein the first graphical program generates data at the location;

provide the data to the second graphical program;

execute the second graphical program, wherein the second graphical program uses the data and generates results;

based on the results, perform one or more of: halting execution of the first graphical program; entering single stepping mode in the first graphical program; and/or completing execution of the first graphical program.

36. The computer-implemented method of claim 1 , wherein said associating the debugging graphical program at the debugging location in the first graphical program comprises:

including the debugging graphical program at the debugging location in the first graphical program.

37. The computer-implemented method of claim 22 , further comprising:

including the debugging graphical program at a debugging location in the first graphical, wherein said including does not modify the functionality of the first graphical program.

38. The computer-implemented method of claim 26 , wherein said associating the second graphical program at the location in the first graphical program comprises:

including the second graphical program at the location in the first graphical program.

39. The memory medium of claim 30 , wherein, in said associating the second graphical program at the location in the first graphical program comprises, the program instructions are further executable to implement:

including the second graphical program at the location in the first graphical program.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2001
From: ROGERS, STEVEN W.; KODOSKY, JEFFREY L.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 012144/0689 →