Dynamically debugging user-defined functions and stored procedures

Share
Save
Discuss
Claim

Share On Facebook Share On Twitter Share By Email
Save Item
Save Item
Add to
my lists

Filing Information

  • Patent Number: US6253368
  • Application Number: US8928621
  • Filing date: 09/12/1997
  • Issue date: 06/26/2001
  • Predicted expiration date: 03/31/2017
Explore Your Innovation Network™ for an introduction to:

Innovation Network Your First Name:
Last Name:
 
Already a member? Sign In
  • U.S. Classifications: 717/4  ·
  • International Classifications: --
  • International Classifications: 717 1 · 717 2 · 717 4 · 714 34 · 714 38 · 707100 · 707101 · 707102 · 345967 ·
  • Related U.S. Application Data:
    RELATED APPLICATIONS
    This application is a continuation-in-part of the following co-pending and commonly-assigned applications:
    Application Ser. No. 08/828,481, entitled “MULTI-TIER DEBUGGING,” filed Mar. 31, 1997, by Daniel E. House and Constance J. Nelin, now U.S. Pat. No. 6,061,517;
    Application Ser. No. 08/828,854, entitled “PROGRAMMING DEVELOPMENT ENVIRONMENT FOR INTRANET AND INTERNET APPLICATIONS EMPLOYING UNIQUE PROJECT DATA STRUCTURE,” filed Mar. 31, 1997, by Daniel E. House, Brian J. Owings, and Shiau-Shiau Pei, now U.S. Pat. No. 6,145,119;
    Application Ser. No. 08/828,476, entitled “SHARED OBJECT MODEL,” filed Mar. 31, 1997, by Daniel E. House, Brian J. Owings, and Shiau-Shiau Pei, now U.S. Pat. No. 5,890,158;
    Application Ser. No. 08/828,480, entitled “REMOTE SCRIPTING OF LOCAL OBJECTS,” filed Mar. 31, 1997, by Daniel E. House, Constance J. Nelin, and Rebecca B. Nin, now U.S. Pat. No. 6,188,400;
    Application Ser. No. 08/828,989, entitled “METHOD AND APPARATUS FOR SIMULATING A MULTI-TIERED COMPUTER ENVIRONMENT,” filed Mar. 31, 1997, by Daniel E. House and Constance J. Nelin, now U.S. Pat. No. 5,940,593;
    Application Ser. No. 08/828,478, entitled “MULTI-TIER VIEW PROJECT WINDOW,” filed Mar. 31, 1997, by Howard J. Glaser, Daniel E. House, and Constance J. Nelin, now U.S. Pat. No. 5,953,525;
    Application Ser. No. 08/829,104, entitled “EXTENDER USER INTERFACE,” filed Mar. 31, 1997, by Thomas E. Conrad, Howard J. Glaser, Jean C. Ho, James L. Keesey, Constance J. Nelin, and Gerald J. Wilmot, now U.S. Pat. No. 6,069,627;
    Application Ser. No. 08/828,846, entitled “SHARED MODULES GRAPHICAL USER INTERFACE,” filed Mar. 31, 1997, by Howard J. Glaser, Daniel E. House, and Constance J. Nelin, now U.S. Pat. No. 5,956,036;
    Application Ser. No. 08/828,479, entitled “QUERY SELECTION FOR A PROGRAM DEVELOPMENT ENVIRONMENT,” filed Mar. 31, 1997, by Howard J. Glaser and Mary C. Lehner, now U.S. Pat. No. 5,911,075;
    Application Ser. No. 08/828,477, entitled “DOCKING AND FLOATING MENU/TOOL BAR,” filed Mar. 31, 1997, by Howard J. Glaser, Karl D. Johnson, and Stewart E. Nickolas, now U.S. Pat. No. 5,883,626;
    Application Ser. No. 08/828,890, entitled “HTML INTEGRATION UTILITY FOR A PROGRAM DEVELOPMENT ENVIRONMENT,” filed Mar. 31, 1997, by Howard J. Glaser, now U.S. Pat. No. 5,953,731;
    Application Ser. No. 08/828,897, entitled “EXTENDER SMART GUIDE,” filed Mar. 31, 1997, by Howard J. Glaser, now U.S. Pat. No. 6,058,264; and
    Application Ser. No. 08/828,990, entitled “DYNAMIC DISCOVERY OF CONTROLS,” filed Mar. 31, 1997, by Daniel E. House and Constance J. Nelin, now U.S. Pat. No. 5,875,322;
    all of which applications are incorporated by reference herein.
    This application is also related to the following co-pending and commonly assigned patent application:
    Application Ser. No. 08/928,620 entitled “STORING P-CODE IN A DATABASE,” filed on same date herewith, by Curt L. Cotner, Wendy L. Koontz, Gerald H. Roth, Frederick T. Sharp and Shu-Huar J. Yeh, which application is hereby incorporated by reference herein.
  • View document at: (opens new window):
    USPTO  ·  PAIR  ·  esp@cenet  ·  Patent Family
    * Related patent documents may or may not exist on these sites
33 Claims, 14 Drawings


Abstract

A method, apparatus, and article of manufacture and memory for providing a programming development environment that supports the development of Internet and Intranet applications. More specially, the present invention discloses an efficient, versatile dynamic debugger that allows platform-independent debugging of applications written in a wide variety of languages.

References Cited

U.S. Patent Documents

Document NumberAssigneesInventorsIssue/Pub Date
US4910663* Tandem Computers Incorporated Bailey Mar 1990
US5655073* Ltd. Hitachi Nishikado et al. Aug 1997
US5675800* Digital Equipment Corporation Fisher, Jr. et al. Oct 1997
US5771385* Sun Microsystems, Inc. Harper Jun 1998
US5926637* BEA Systems, Inc. Inoue Jul 1999
US5978902* Advanced Micro Devices, Inc. Mann Nov 1999
* cited by examiner

Referenced By

Document NumberAssigneeInventorsIssue/Pub Date
US7426717Adobe Systems IncorporatedJeff Schang et al.Sep 2008
US7418697Microsoft CorporationIzydor Gryko et al.Aug 2008
US7406679International Business Machines CorporationConstance J. Nelin et al.Jul 2008
US6550056Mitsubishi Denki Kabushiki KaishaKatsuya Mizumoto et al.Apr 2003
US7555744Microsoft CorporationGueorgui B. Chkodrov et al.Jun 2009
US6889260EC Enabler, LTDMarvin E. HughesMay 2005
US6915509Microsoft CorporationGueorgui B. Chkodrov et al.Jul 2005
US7415707Sony CorporationToshihiro Taguchi et al.Aug 2008
US6938245Veritas Operating CorporationMichael P. Spertus et al.Aug 2005
US7117483Microsoft CorporationRobert A. Dorr et al.Oct 2006
US7076400Nextnine Ltd.Adi Dulberg et al.Jul 2006
US7409318Nextnine Ltd.Adi Dulberg et al.Aug 2008
US6810516Hewlett-Packard Development Company, L.P.Inna LaurisOct 2004
US7243342Intel CorporationRakesh Ghiya et al.Jul 2007
US7516441Microsoft CorporationJennifer A Hamilton et al.Apr 2009
US7559055Research In Motion LimitedLianghua Yang et al.Jul 2009
US6412106InterVoice Limited PartnershipGary M. Leask et al.Jun 2002
US6684216Katherine A. DulibaKatherine A. Duliba et al.Jan 2004
US6978445Siebel Systems, Inc.Lisa Ann LaaneDec 2005
US7275238International Business Machines CorporationFrancisco Miguel Anaya et al.Sep 2007
US7237014Drummond GroupRichard VaNeile Drummond, IIJun 2007
US7500225Microsoft CorporationAzeemullah Khan et al.Mar 2009
US7529654International Business Machines CorporationBernd Dowedeit et al.May 2009

Patent Family


Read Patent

Read patent

Independent Claims | See all claims (33)

  1. 1. A method of debugging a computer routine, comprising the steps of: accepting an interpretable instruction set defining the computer routine in the computer; storing the instruction set and a debug flag in a database table accessible by the computer; storing a key to the debug flag and the instruction set in a data link library (DLL) associated with the computer routine; reading the instruction set and the debug flag from the database table using the key; and reading the instruction set from the database table into the computer and invoking the debugger when the debug flag indicates that the computer routine should be run in the debug mode.
  2. 2. A method of debugging a computer program, comprising the steps of: accepting an instruction set defining the computer program in the computer; and storing data sufficient to invoke a debugger in a database table accessible by the computer; wherein the step of storing data sufficient to define and invoke a debugger in a database table comprises the steps of: storing the instruction set in a database table accessible by the computer; and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; wherein the step of storing a debug flag in the database table comprises the steps of: presenting a debug selecting input delimiter to a user; presenting a list of available database tables to the user when the debug selecting input delimeter is selected; accepting a database table selection comprising a single database table; setting the debug flag and storing an address of the debugger in the selected database table; and resetting the debug flag when the debug selecting input delimeter is not selected.
  3. 3. A method of debugging a computer program, comprising the steps of: accepting an instruction set defining the computer program in the computer; and storing data sufficient to invoke a debugger in a database table accessible by the computer; wherein the step of storing data sufficient to define and invoke a debugger in a database table comprises the steps of: storing the instruction set in a database table accessible by the computer; and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; wherein the instruction set comprises computer program instructions and debugger instructions.
  4. 4. A method of debugging a computer program, comprising the steps of: accepting an instruction set defining the computer program in the computer; and storing data sufficient to invoke a debugger in a database table accessible by the computer by performing the steps of storing the instruction set in a database table accessible by the computer and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; and storing a debugger address in the database table.
  5. 5. A method of debugging a computer program, comprising the steps of: accepting an instruction set defining the computer program in the computer; and storing data sufficient to invoke a debugger in a database table accessible by the computer by performing the steps of storing the instruction set in a database table accessible by the computer and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; and accepting the value of the debug flag from a user, the accepting step comprising the steps of: presenting a stored procedure dialog box having a build option tab to the user, the build option tab including a check box for selecting the debug flag; and setting the debug flag when the check box is selected by the user.
  6. 6. A method of debugging a computer program, comprising the steps of: accepting an instruction set defining the computer program in the computer; and storing data sufficient to invoke a debugger in a database table accessible by the computer by performing the steps of storing the instruction set in a database table accessible by the computer and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; and accepting a debug flag entry from a user, the accepting step comprising the steps of: presenting a database options dialog box to the user, the database options dialog box having a list of debuggable computer programs, a checkbox associated with each debuggable computer program; and setting the debug flag for the computer program when the associated check box is selected by the user.
  7. 7. A method of debugging a computer program comprising an instruction set having computer program instructions and debugger instructions, comprising the steps of: reading a table from a database accessible by the computer, the table comprising the instruction set and a debug flag; and invoking a debugger when the debug flag indicates that the computer program should be run in a debug mode.
  8. 12. An apparatus for debugging a computer program, comprising: a computer, having a memory and a processor; means, performed by the computer, for accepting an instruction set defining the computer program in the computer; and means, performed by the computer, for storing data sufficient to invoke a debugger in a database accessible by the computer, including means, performed by the computer, for storing the instruction set in a database accessible by the computer, and means, performed by the computer, for storing a debug flag in the database, the debug flag indicating when the debugger is invoked; wherein the means for storing a debug flag in the database comprises: means, performed by the computer, for presenting an input delimeter to a user; means, performed by the computer, for presenting a list of available database tables to the user when the debug selecting input delimeter is selected; means, performed by the computer, for accepting a database table selection comprising a single database table; and means, performed by the computer, for setting the debug flag when the debug selecting input delimeter is not selected.
  9. 13. An apparatus for debugging a computer program, comprising: a computer, having a memory and a processor; means, performed by the computer, for accepting an instruction set defining the computer program in the computer; and means, performed by the computer, for storing data sufficient to invoke a debugger in a database accessible by the computer, including means, performed by the computer, for storing the instruction set in a database accessible by the computer, and means, performed by the computer, for storing a debug flag in the database, the debug flag indicating when the debugger is invoked; wherein the instruction set comprises computer program instructions and debugger instructions.
  10. 14. An apparatus for debugging a computer program, comprising: a computer, having a memory and a processor; means, performed by the computer, for accepting an instruction set defining the computer program in the computer; means, performed by the computer, for storing data sufficient to invoke a debugger in a database accessible by the computer, including means, performed by the computer, for storing the instruction set in a database accessible by the computer, and means, performed by the computer, for storing a debug flag in the database, the debug flag indicating when the debugger is invoked; and means, performed by the computer, for storing a debugger address in the database.
  11. 15. An apparatus for debugging a computer program, comprising: a computer, having a memory and a processor; means, performed by the computer, for accepting an instruction set defining the computer program in the computer; means, performed by the computer, for storing data sufficient to invoke a debugger in a database accessible by the computer, including means, performed by the computer, for storing the instruction set in a database accessible by the computer, and means, performed by the computer, for storing a debug flag in the database, the debug flag indicating when the debugger is invoked; and means, performed by the computer, for accepting the value of the debug flag from a user, the accepting means having means for presenting a stored procedure dialog box having a build options tab to the user, the build options tab having a checkbox selecting the debug flag, and means for setting the debug flag when the checkbox is selected by the user.
  12. 16. An apparatus for debugging a computer program, comprising: a computer, having a memory and a processor; means, performed by the computer, for accepting an instruction set defining the computer program in the computer; means, performed by the computer, for storing data sufficient to invoke a debugger in a database accessible by the computer, including means, performed by the computer, for storing the instruction set in a database accessible by the computer, and means, performed by the computer, for storing a debug flag in the database, the debug flag indicating when the debugger is invoked; and means, performed by the computer, for accepting a debug flag entry from a user, the accepting means having means for presenting a database options dialog box having a list of debuggable computer programs and a checkbox associated with each debuggable computer program to the user, and means for setting the debug flag for the computer program when the associated check box is selected by the user.
  13. 17. An apparatus for debugging a computer program comprising an instruction set having computer program instructions and debugger instructions, comprising: a computer, having a memory and a processor; means, performed by the computer, for reading a value from a database accessible by the computer, the value comprising the instruction set and a debug flag; and means, performed by the computer, for invoking a debugger when the debug flag indicates that the computer program should be executed in the debug mode.
  14. 22. A program storage device, readable by a computer having a memory and a processor, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of debugging a computer program, the method comprising the steps of: accepting an instruction set defining the computer program in the computer; storing data sufficient to invoke a debugger in a database table accessible by the computer. storing the instruction set in a database table accessible by the computer; and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; wherein the method step of storing a debug flag in the database table comprises the steps of: presenting a debug selecting input delimiter to a user; presenting a list of available database tables to the user when the debug selecting input delimeter is selected; accepting a database table selection comprising a single database table; setting the debug flag and storing an address of the debugger in the selected database table; and resetting the debug flag when the debug selecting input delimeter is not selected.
  15. 23. A program storage device, readable by a computer having a memory and a processor, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of debugging a computer program, the method comprising the steps of: accepting an instruction set defining the computer program in the computer; storing data sufficient to invoke a debugger in a database table accessible by the computer. storing the instruction set in a database table accessible by the computer; and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; wherein the instruction set comprises computer program instructions and debugger instructions.
  16. 24. A program storage device, readable by a computer having a memory and a processor, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of debugging a computer program, the method comprising the steps of: accepting an instruction set defining the computer program in the computer; storing data sufficient to invoke a debugger in a database table accessible by the computer. storing the instruction set in a database table accessible by the computer; storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; and storing a debugger address in the database table.
  17. 25. A program storage device, readable by a computer having a memory and a processor, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of debugging a computer program, the method comprising the steps of: accepting an instruction set defining the computer program in the computer; storing data sufficient to invoke a debugger in a database table accessible by the computer. storing the instruction set in a database table accessible by the computer; storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; and accepting the value of the debug flag from a user, the accepting step comprising the steps of: presenting a stored procedure dialog box having a build option tab to the user, the build option tab including a check box selecting the debug flag; and setting the debug flag when the check box is selected by the user.
  18. 26. A program storage device, readable by a computer having a memory and a processor, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of debugging a computer program, the method comprising the steps of: accepting an instruction set defining the computer program in the computer; storing data sufficient to invoke a debugger in a database table accessible by the computer; storing the instruction set in a database table accessible by the computer; and storing a debug flag in the database table, the debug flag indicating when the debugger is invoked; accepting a debug flag entry from a user, the accepting step comprising the steps of: presenting a database options dialog box to the user, the database options dialog box having a list of debuggable computer programs, a checkbox associated with each debuggable computer program; and setting the debug flag for the computer program when the associated check box is selected by the user.
  19. 28. A program storage device, readable by a computer having a memory and a processor, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of debugging a computer program comprising an instruction set having computer program instructions and debugger instructions, the method comprising the steps of: reading a table from a database accessible by the computer, the table comprising the instruction set and a debug flag; and invoking a debugger when the debug flag indicates that the computer program should be run in a debug mode.
  20. 33. A memory for storing data for debugging a computer routine, the memory comprising: a database table readable by a relational database management system accessible by the computer routine, the database table having an interpretable instruction set and a debug flag for invoking a debugger to debug the interpretable instruction set, wherein the interpretable instruction set is retrievable using a key stored in a data link library (DLL) associated with the computer routine.