DE10348591A1 - Automatically identifying a program error in a computer program - Google Patents

Automatically identifying a program error in a computer program Download PDF

Info

Publication number
DE10348591A1
DE10348591A1 DE10348591A DE10348591A DE10348591A1 DE 10348591 A1 DE10348591 A1 DE 10348591A1 DE 10348591 A DE10348591 A DE 10348591A DE 10348591 A DE10348591 A DE 10348591A DE 10348591 A1 DE10348591 A1 DE 10348591A1
Authority
DE
Germany
Prior art keywords
program
error
new
code
numeric
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10348591A
Other languages
English (en)
Inventor
Juha P. Knuutila
Samu J. Lahti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Blue Yonder Group Inc
Original Assignee
I2 Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by I2 Technologies Inc filed Critical I2 Technologies Inc
Publication of DE10348591A1 publication Critical patent/DE10348591A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

In einer Ausführungsform der Erfindung, beinhaltet ein Verfahren zum automatischen Erkennen eines Programmfehlers in einem Computerprogramm das Empfangen einer Programmfehlernachricht, die anzeigt, dass ein neuer Programmfehler während des Ausführens des Programms aufgetreten ist, und Generieren eines Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, der auf die Quelle des neuen Programmfehlers innerhalb des Programms hinweist. Eine erste Operation wird auf einen Teil des Programm-Stack-Fehlerprotokolls angewendet, um einen ersten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren. Der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, wird mit einem oder mehreren ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, verglichen, um zu bestimmen, ob der neue Programmfehler derselbe, wie ein zuvor erkannter Programmfehler ist. Wenn dies der Fall ist, wird gespeicherte Information, die mit dem Lösen des zuvor erkannten Programmfehlers in Zusammenhang steht, zum Lösen des neuen Programmfehlers zur Verfügung gestellt.

Description

  • Die Erfindung betrifft allgemein das Erkennen eines Programmfehlers in einem Computerprogramm und insbesondere das automatische Erkennen eines Programmfehlers in einem Computerprogramm.
  • Ein Computerprogramm kann während der Ausführung einen Programmfehler verursachen. Es kann wünschenswert sein, den Programmfehler zu erkennen und eine Lösung dafür zu finden. In einigen Fällen kann der Programmfehler zuvor erkannt und gelöst worden sein. Zum Beispiel kann dasselbe oder ein anderes Programm, wie eine andere Version desselben Programms, das zuvor innerhalb eines Computernetzwerkes ausgeführt wurde, denselben Programmfehler zuvor erzeugt haben. Als Antwort auf einen neuen Programmfehler kann ein Programm-Stack-Fehlerprotokoll automatisch erzeugt werden, das einen Pfad zur Quelle des neuen Programmfehlers im Programm, welches den neuen Programmfehler erzeugt hat, aufweist. Um mögliche doppelte Arbeit in der Lösung eines neuen Programmfehlers zu vermeiden, mag es wünschenswert sein, zu ermitteln, ob derselbe Programmfehler zuvor erzeugt wurde und, falls dies der Fall ist, ob eine Lösung für den Programmfehler verfügbar ist. Um den neuen Programmfehler zu identifizieren, kann es für einen Benutzer, wie ein Programmentwickler, erforderlich sein, die zuvor erzeugten Programm-Stack-Fehlerprotokolle manuell zu durchsuchen, um festzustellen, ob ein passendes Programm-Stack-Fehlerprotokoll für einen vorhergehenden Programmfehler existiert, was anzeigt, dass der vorhergehende Programmfehler derselbe wie der neue Programmfehler ist. Dieser Vorgang ist oft mühsam, kostenaufwendig und unterliegt der Gefahr des menschlichen Irrtums.
  • Gemäß der vorliegenden Erfindung können Probleme und Nachteile, die in Zusammenhang mit vorhergehenden Techniken zum Erkennen und Auflösen eines Programmfehlers in einem Computerprogramm stehen, reduziert oder eliminiert werden.
  • In einem Ausführungsbeispiel beinhaltet ein Verfahren zur automatischen Erkennung eines Programmfehlers in einem Computerprogramm Empfangen einer Programmfehlernachricht, die anzeigt, dass ein neuer Programmfehler während der Ausführung des Programms aufgetreten ist, und Generieren eines Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, das die Quelle des neuen Programmfehlers innerhalb des Programms anzeigt. Ein erste Operation wird auf einen Teil des Programm-Stack-Fehlerprotokolls angewendet, um einen ersten numerischen Code, der mit dem neuen Programmfehler zusammenhängt, zu generieren. Der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, wird mit einem oder mehreren gespeicherten ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, verglichen, um festzustellen, ob es sich bei dem neuen Programmfehler um denselben Programmfehler handelt wie bei einem zuvor erkannten Programmfehler. Wenn dies der Fall ist, wird gespeicherte Information, die mit der Lösung des zuvor erkannten Programmfehlers in Zusammenhang steht, zur Verwendung bei der Lösung des neuen Programmfehlers gespeichert.
  • Bestimmte Ausführungsbeispiele der vorliegenden Erfindung können einen oder mehrere technische Vorteile zur Verfügung stellen. Zum Beispiel erkennen bestimmte Ausführungsbeispiele eindeutig einen Programmfehler unter Verwendung eines oder mehrerer numerischer Codes, die entsprechend eines Programm-Stack-Fehlerprotokolls für den Programmfehler generiert wurden. Die eindeutige Erkennung von Programmfehlern entsprechend eines solchen numerischen Codes kann darin resultieren, dass ein neuer Programmfehler sofort und automatisch mit den zuvor erkannten Programmfehlern verglichen wird, um festzustellen, ob Information, die zur Lösung des neuen Programmfehlers verwendet werden kann, bereits existiert. So kann vermieden werden, dass ein Benutzer, wie ein Programmentwickler, doppelte Arbeit ausführt, was Mühe und Entwicklungskosten reduzieren und die Genauigkeit verbessern kann. In bestimmten Ausführungsbeispielen können mehrfache numerische Codes für jeden Programmfehler gemäß dem entsprechenden Programm-Stack-Fehlerprotokoll generiert werden, was es ermöglicht, Programmfehler, die in unterschiedlichen Versionen eines Programms generiert wurden, als dieselben zu erkennen. Systeme und Verfahren, die einen oder mehrere dieser oder anderer technischer Vorteile beinhalten, können zum Erkennen und Auflösen von Programmfehlern gut geeignet sein. Bestimmte Ausführungsbeispiele können alle, einige oder keine der oben genannten Vorteile aufweisen. Bestimmte Ausführungsbeispiele können einen oder mehrere technische Vorteile aufweisen, von denen einer oder mehrere für den Fachmann aus den Figuren, Beschreibung und Patentansprüchen, die hier enthalten sind, ohne weiteres erkennbar sind.
  • Um ein vollständigeres Verständnis der vorliegenden Erfindung und deren Merkmale und Vorteile zu bieten, wird auf die folgende Beschreibung zusammen mit den begleitenden Zeichnungen Bezug genommen, in denen:
  • 1 ein Beispielsystem zum automatischen Erkennen eines Programmfehlers in einem Computerprogramm darstellt;
  • 2 ein Beispiel eines Programm-Stack-Fehlerprotokolls darstellt, das die Quelle eines Programmfehlers innerhalb eines Computerprogramms anzeigen kann; 3A3C Computerprogrammbeispiele darstellen;
  • 4A4C Programmfehler-Ausgaben Beispiele von Computerprogrammen darstellen; und
  • 5 ein Beispiel eines Verfahrens zum automatischen Erkennen eines Programmfehlers in einem Computerprogramm darstellt;
  • 1 stellt ein beispielhaftes System zur automatischen Erkennung eines Programmfehlers in einem Computerprogramm dar. System 10 beinhaltet einen oder mehrere Client- Systeme 12 und einen oder mehrere Server- System 14, die unter Verwendung eines Netzwerk 16 gekoppelt sind. Client- System 12 und Server- System 14 werden jeweils auf einem oder mehreren Computern an einem oder mehreren Standorten betrieben. Jeder Computer kann eine oder mehrere geeignete Eingabe-Einrichtungen, Ausgabe-Einrichtungen, Prozessoren und dazugehörige Speicher, Massenspeichermedien, Kommunikations-Schnittstellen und beliebige andere Komponenten, die entsprechend dem Betrieb des Systems 10 geeignet sind, enthalten. Netzwerk 16 kann ein oder mehrere lokale Netzwerke (LANs), regionale Netzwerke (MANs), Weitverkehrsnetzwerke (WANs), Teile des globalen Computernetzwerkes, bekannt als Internet, oder beliebige andere geeignete drahtgebundene, optische, drahtlose oder andere Verbindungen beinhalten.
  • Komponenten von Server- System 14 können einen Web-Server 18, einen Anwendungs-Server 24, eine Anwendung 26 (welche eine von mehreren Anwendungen in Zusammenhang mit Anwendungs- Server 24 sein kann), und einer Datenbank 28 beinhalten. In einer Ausführungsform beinhaltet Anwendungs- Server 24 einen WEBLOGIC Anwendungs- Server, WEBSPHERE Anwendungs- Server oder andere geeignete Anwendungs- Server, und Anwendung 26 beinhaltet eine JAVA Anwendung. Die vorliegende Erfindung betrachtet Anwendung 26 jedoch mit oder ohne Anwendungs-Server 24. Indem ein Internetbrowser oder etwas anderes verwendet wird, kann ein Klienten- Server 12 eine Anfrage an einen Web-Server 18 eines Server- System s 14 für das Server- System 14 senden, um ein Computerprogramm auszuführen. Web Server 18 kann die Anfrage an den Anwendungs- Server 24 übertragen und den Anwendungs- Server 24 dazu auffordern, die Ausführung des Programms einzuleiten. Während der Ausführung des Programms können ein oder mehrere Programmfehler auftreten. Anwendung 26 kann eine Programmfehlernachricht erhalten, die anzeigt, dass ein neuer Programmfehler während der Ausführung des Programms aufgetreten ist. Anwendung 26 kann ein Programm-Stack-Fehlerprotokoll für den neuen Programmfehler generieren, welches auf die Quelle des neuen Programmfehlers innerhalb des Programms hinweisen kann. Anwendung 26 kann einen oder mehrere numerische Codes, die mit dem neuen Programmfehler in Zusammenhang stehen, generieren, die numerischen Codes, die mit dem neuen Programmfehler in Zusammenhang stehen, mit einem oder mehreren gespeicherten numerischen Codes mit zuvor erkannten Programmfehlern vergleichen und, wenn eine Übereinstimmung gefunden wurde, gespeicherte Information, die mit der Lösung des übereinstimmenden zuvor erkannten Programmfehlers in Zusammenhang steht, zur Verwendung für die Lösung des neuen Programmfehlers zur Verfügung stellen.
  • Obwohl eine besondere Client- Server- Umgebung als ein Beispiel beschrieben wird, betrachtet die vorliegende Erfindung jede geeignete Computerumgebung. Obwohl Anwendung 26 so beschrieben wird, dass sie bestimmte Operationen ausführt, betrachtet die vorliegende Erfindung darüber hinaus diese Vorgänge so, dass sie unter Verwendung jeglicher geeigneter Komponente oder Komponenten, die in Zusammenhang mit Server-System 14 oder einem anderen passenden Computersystem stehen, ausgeführt werden. Zum Beispiel können bestimmte Operationen durch Anwendung 26 (z.B. durch einen einer Vielzahl von Prozessen von Anwendung 26), durch eine andere Anwendung (z.B. durch einen einer Vielzahl von Prozessen der anderen Anwendung), durch einen Entwickler oder andere Benutzer, die mit dem System 10 in Zusammenhang stehen, oder durch jede andere geeignete Art ausgeführt werden. Weiterhin, obwohl Computerprogramme beschrieben werden, betrachtet die vorliegende Erfindung des Weiteren das Erkennen und Lösen von Programmfehlern in jeder geeigneten Softwarekomponente oder Code-Segment, ob auf diese nun als "Programm" in der besonderen Sprache, in der die Softwarekomponente oder das Code-Segment geschrieben ist, Bezug genommen wird oder nicht.
  • 2 zeigt ein Beispiel eines Programm-Stack-Fehlerprotokolls 40, das auf die Quelle eines neuen Programmfehlers innerhalb eines Programms hinweisen kann. Das Programm-Stack-Fehlerprotokoll 40 kann ein Standard JAVA Programm-Stack-Fehlerprotokoll oder ein anderes geeignetes Programm-Stack-Fehlerprotokoll entsprechend der besonderen Bedürfnisse sein. In einer Ausführungsform kann Programm-Stack-Fehlerprotokoll 40 als Pfad zum Computer-Code im Programm, das den Programmfehler hervorgerufen hat, beschrieben werden. So kann Programm-Stack-Fehlerprotokoll 40 zum Beispiel eine oder mehrere Klassen-Methoden oder andere geeignete Methoden 42 in dem Programm, das den Programmfehler hervorgerufen hat, anzeigen. Für jede solcher Methoden 42, kann das Programm-Stack-Fehlerprotokoll 42 eine Zeilennummer 44 des Codes in der Methode 42, in dem der Programmfehler hervorgerufen wurde, beinhalten.
  • Zurückkommend auf 1, kann Anwendung 26 einen oder mehrere numerische Codes, die mit dem neuen Programmfehler in Zusammenhang stehen, generieren. In einer Ausführungsform, kann Anwendung 26 die numerischen Codes, die mit dem neuen Programmfehler in Zusammenhang stehen, mit den entsprechenden gespeicherten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, vergleichen, um festzustellen, ob der neue Programmfehler derselbe wie wenigstens einer der zuvor erkannten Programmfehler ist. Dieser Arbeitsschritt oder Arbeitsschritte können jedoch durch Anwendung 26 (z.B. durch einen einer Vielzahl von Prozessen von Anwendung 26) oder durch eine andere Anwendung (z.B. durch einen einer Vielzahl von Prozessen der anderen Anwendung), durch einen Entwickler oder anderen Benutzer, der in Zusammenhang mit System 10 steht, oder in einer beliebigen anderen Art, abhängig von der Ausführungsform, ausgeführt werden. Die gespeicherten numerischen Codes können in Datenbank 28 oder an jedem anderen geeigneten Ort, der für Anwendung 26 zugänglich ist, gespeichert werden. Die gespeicherten numerischen Codes können durch vorangegangene Arbeitsschritte der Anwendung 26 (z.B. durch einen einer Vielzahl von Prozessen von Anwendung 26) oder durch eine andere Anwendung (z.B. durch einen einer Vielzahl von Prozessen der anderen Anwendung), durch einen Entwickler oder anderen Benutzer, der in Zusammenhang mit System 10 steht, oder in einer anderen geeigneten Art, gespeichert werden.
  • Wenn ein numerischer Code, der mit dem neuen Programmfehler in Zusammenhang steht, derselbe ist, wie ein gespeicherter numerischer Code, der in Zusammenhang mit einem zuvor erkannten Programmfehler steht, kann die Anwendung 26 gespeicherte Information, die in Zusammenhang mit der Lösung des übereinstimmenden, zuvor erkannten, Programmfehlers zur Verwendung zum Lösen des neuen Programmfehlers zur Verfügung stellen. Die gespeicherte Information kann zum Beispiel fehlerfreien Code, erklärenden Text, einen Link zu solchem Code oder Text, eine URL (uniform resource locator) oder eine andere Adresse eines solchen Codes oder Links oder jede andere geeignete gespeicherte Information beinhalten. Die gespeicherte Information kann durch vorangegangene Arbeitsschritte der Anwendung 26 gespeichert worden sein (z.B. durch einen einer Vielzahl von Prozessen von Anwendung 26) oder durch eine andere Anwendung (z.B. durch einen einer Vielzahl von Prozessen der anderen Anwendung), durch einen Entwickler oder anderen Benutzer, der in Zusammenhang mit System 10 steht, oder in einer anderen geeigneten Art, abhängig von der Ausführungsform, gespeichert werden. In einer Ausführungsform, falls kein numerischer Code, der mit dem neuen Programmfehler in Zusammenhang steht, gleich dem eines der gespeicherten numerischen Codes, die mit einem zuvor erkannten Programmfehler in Zusammenhang stehen, ist, kann Anwendung 26 den einen oder mehrere numerische Codes, die mit dem neuen Programmfehler in Zusammenhang stehen, zum Erkennen nachfolgender Programmfehler in Datenbank 28 speichern.
  • Bestimmte Ausführungsformen der vorliegenden Erfindung können einen oder mehrere technische Vorteile bieten. Bestimmte Ausführungsformen können zum Beispiel einen Programmfehler eindeutig erkennen, indem sie einen oder mehrere numerische Codes verwenden, die entsprechend eines Programm-Stack-Fehlerprotokolls 40 für den Programmfehler generiert wurden. Das eindeutige Erkennen von Programmfehlern entsprechend eines solchen numerischen Codes kann es zulassen, dass ein neuer Programmfehler sofort und automatisch mit zuvor erkannten Programmfehlern verglichen werden kann, um festzustellen, ob Information, die zur Lösung des neuen Programmfehlers verwendet werden kann, bereits existiert. Dies kann es einem Benutzer, wie Programmentwickler, erlauben, doppelte Arbeit zu vermeiden, Mühe und Entwicklungskosten zu verringern und die Genauigkeit zu verbessern. Bei bestimmten Ausführungsformen können für jeden Programmfehler viele numerische Codes gemäß dem entsprechenden Programm-Stack-Fehlerprotokoll 40 generiert werden, die es ermöglichen können, dass Programmfehler in verschiedenen Versionen eines Programms als dieselben erkannt werden.
  • 3A3C zeigen Beispiele von Computerprogrammen 50, die das Server- System 14 in Abhängigkeit von einer Anfrage vom Client- System 12 ausführen kann. Die Programme 50 können jeweils eine oder mehrere Funktionen 42 beinhalten, die in einem besonderen Beispiel func1, func2, func3, func_jaa, und main beinhalten können. Während Funktionen 42 in den Programmen 50 bestimmte Namen und Formate zugeteilt werden, wird es der Fachmann schätzen, dass jegliche passende Namen und Formate verwendet werden können. Zudem betrachtet die Erfindung, während besondere Programme 50 beschrieben werden, jegliche geeignete Programmen 50.
  • Wenn ein Programm 50 ausgeführt wird, können bestimmte Funktionen 42, während diese ausgeführt werden, innerhalb des Programms 50 Programmfehler generieren, was dazu führt, dass Programm 50 einen Programmfehler generiert. Als Beispiel kann func_ jaa in Programm 50a einen Programmfehler generieren, da func_jaa versucht, auf ein Ziel zuzugreifen, das nicht existiert (d.h. auf Null zeigt). So kann, wenn die Funktion main in Programm 50a func1 aufruft, die func2 aufruft, die func3 aufruft, die func_jaa aufruft, ein Programmfehler generiert werden. Funktion main kann einen Ausdruck catch (Exception E) enthalten, der eine Programmfehlernachricht erhält, die anzeigt, dass ein neuer Programmfehler in func_jaa aufgetreten ist. Funktion main kann außerdem einen Funktionsaufruf addLogEntry(stackCode(e)) enthalten, der eine Programmfehlerausgabe generiert, die möglicherweise ein Programm-Stack-Fehlerprotokoll 40 sowie den einen oder mehrere numerische Codes, die mit dem neuen Programmfehler in Zusammenhang stehen, beinhaltet.
  • 4A4C zeigen Beispielprogrammfehlerausgabe 70 von Computerprogrammen 50, die generiert werden können, wenn ein Programm 50 einen Programmfehler generiert, und automatisch verwendet werden können, um den Programmfehler zu erkennen. Programmfehlerausgaben 70a – 70c, die in 4A4C jeweils dargestellt sind, entsprechen den Programmen 50a – 50c, die jeweils in 3A-3C dargestellt sind. Die Programmfehlerausgabe 70a wird zum Beispiel in Abhängigkeit von einem Programmfehler generiert, der während der Ausführung von Programm 50a aufgetreten ist. Während die spezifische Programmfehlerausgabe 70 beschrieben wird, wird es der Fachmann schätzen, dass jede Programmfehlerausgabe, die zur automatischen Erkennung eines Programmfehlers in einem Programm 50 geeignet ist, verwendet werden kann.
  • Programmfehlerausgabe 70 kann ein Programm-Stack-Fehlerprotokoll 40 beinhalten, das die Quelle des Programmfehlers innerhalb des Programms 50 anzeigt. Programmfehlerausgabe 70 kann außerdem einen oder mehrere numerische Codes 74 beinhalten, die mit dem Programmfehler in Zusammenhang stehen. Ein numerischer Code 74 kann eine numerische Darstellung eines Programm-Stack-Fehlerprotokolls 40 zur Verfügung stellen und kann eindeutig den Programmfehler, der mit dem Programm-Stack-Fehlerprotokoll 40 in Zusammenhang steht, erkennen. In einer Ausführungsform, kann ein numerischer Code 74 berechnet werden, indem eine Operation angewendet wird, der einen im Wesentlichen eindeutigen Code zum Programm-Stack-Fehlerprotokoll 40 für den Programmfehler generiert. In einer Ausführungsform kann beispielsweise ein numerischer Code 74 für einen Programmfehler durch das Anwenden einer String.hashCode() oder einer Object.hashCode() Methode für das Programm-Stack-Fehlerprotokoll 40 berechnet werden. Die Operation kann zum Beispiel eine unendliche Menge von Eingaben einer ganzen Zahl x zuordnen, so dass -2147493649 < x < 2147493649 ist. Die Operation kann auf das ganze oder einen Teil des Programm-Stack-Fehlerprotokolls 40 angewendet werden. Es kann wünschenswert sein, viele numerische Codes 74 zu generieren, um sicherzustellen, dass ein neuer Programmfehler gefunden wird, der mit einem zuvor erkannten Programmfehler übereinstimmt, auch wenn Programme 50, die den Programmfehler verursacht haben, nicht identisch sein müssen. Die Programmfehlerausgabe 70 kann beispielsweise einen exakten Übereinstimmungscode 76, einen Fehlerprotokoll-Code 78, einen Anordnungs- Code 80 oder einen beliebigen geeigneten numerischen Code 74 beinhalten.
  • In einer Ausführungsform kann der Übereinstimmungscode 76 ein numerischer Code 74 sein, wenn eine Operation, die einen im Wesentlichen eindeutigen Code generiert, auf das gesamte Programm-Stack-Fehlerprotokoll 40 für einen Programmfehler angewendet wird. Als Beispiel kann ein exakter Übereinstimmungscode 76, der mit einem neuen Programmfehler in Zusammenhang steht, derselbe sein wie ein exakter Übereinstimmungscode 76, der mit einem zuvor erkannten Programmfehler in Zusammenhang steht, wenn das Programm 50, das den neuen Programmfehler generiert hat, im Wesentlichen identisch mit dem Programm 50 ist, das den zuvor erkannten Programmfehler generiert hat. Der Fehlerprotokoll-Code 78 kann ein numerischer Code 74 sein, der berechnet wird, wenn eine Operation, die einen im Wesentlichen eindeutigen Code generiert, bei einem Programm-Stack-Fehlerprotokoll 40 für einen Programmfehler angewandt wird, nachdem alle Zeilenzahlen 44 vom Programm-Stack-Fehlerprotokoll 40 gelöscht wurden. Ein Beispiel: Ein Fehlerprotokoll-Code 78, der mit einem neuen Programmfehler in Zusammenhang steht, kann derselbe Fehlerprotokoll-Code 78 sein, wie der, welcher mit einem zuvor erkannten Programmfehler in Zusammenhang steht, wenn das Programm 50, das den neuen Programmfehler ausgelöst hat, über mehr oder weniger Code-Zeilen als das Programm 50, das den zuvor erkannten Programmfehler ausgelöst hat, besitzt, aber ansonsten identisch mit ihm ist. Anordnungs- Code 80 kann ein numerischer Code 74 sein, der berechnet wird, wenn eine Operation, die einen im Wesentlichen eindeutigen Code generiert, auf ausschließlich spezifizierte Zeilen angewandt wird, wie die ersten drei Zeilen beispielsweise des Programm-Stack-Fehlerprotokolls 40. Als Beispiel kann ein Anordnungs- Code 80, der mit einem neuen Programmfehler in Zusammenhang steht, derselbe sein wie ein Anordnungs- Code 80, der mit einem zuvor erkannten Programmfehler in Zusammenhang steht, wenn das Programm 50, das den neuen Programmfehler ausgelöst hat, eine oder mehrere Funktionen 42 beinhaltet, die anders als in Programm 50 benannt sind, das den zuvor erkannten Programmfehler ausgelöst hat.
  • Nur als Beispiel: Angenommen, Programm 50a wird ausgeführt und generiert eine Programmfehlernachricht, die von einer Anwendung 26 empfangen wird. Die Anwendung 26 kann eine Programmfehlerausgabe 70a generieren, die möglicherweise das Programm-Stack-Fehlerprotokoll 40a beinhaltet, das angibt, dass func_jaa in Programm 50a die Quelle des Programmfehlers ist. Die Anwendung 26 kann dann einen oder mehrere numerische Codes 74a generieren, die eindeutige Identifikatoren für das Programm-Stack-Fehlerprotokoll 40a zur Verfügung stellen und somit für den neuen Programmfehler. Die numerischen Codes 74a können einen exakten Übereinstimmungscode 76a, Fehlerprotokoll-Code 78a, Anordnungs- Code 80a oder andere geeignete Codes entsprechend der besonderen Anforderungen, beinhalten. Es wird angenommen, dass der numerische Codes 74a in diesem Beispiel in einer Datenbank 28 gespeichert wird. Der Programmfehler kann z.B. ein neuer Programmfehler sein, so dass keiner des einen oder der mehreren numerischen Codes 74 für den Programmfehler mit einem gespeicherten numerischen Code 74 eines zuvor erkannten Programmfehlers übereinstimmt.
  • Das Beispiel fortsetzend, angenommen Programm 50b wird einige Zeit, nachdem die numerischen Codes 74a in der Datenbank 28 gespeichert sind, ausgeführt. Derselbe Code in func_jaa in Programm 50a, der verursacht hat, dass Programm 50a eine Programmfehlernachricht generiert, ist in func_jaa von Programm 50b enthalten. Somit generiert Programm 50b, wenn Programm 50b ausgeführt wird, ebenfalls eine Programmfehlernachricht, die von Anwendung 26 empfangen wird. Anwendung 26 kann eine Programmfehlerausgabe 70b generieren, die möglicherweise das Programm-Stack-Fehlerprotokoll 40b beinhaltet, das anzeigt, dass func_jaa in Programm 50b die Quelle des Programmfehlers ist. Die Anwendung 26 kann dann einen oder mehrere numerische Codes 74b generieren, die eindeutige Identifikatoren für das Programm-Stack-Fehlerprotokoll 40b zur Verfügung stellen und somit für den neuen Programmfehler. Somit hat derselbe Code in demselben Verfahren 42 (func_jaa), der den Programmfehler in Programm 50b ausgelöst hat, ebenfalls den Programmfehler in Programm 50a ausgelöst. Da in Programm 50b jedoch zusätzliche Code-Zeilen zu func_jaa hinzugefügt wurden, können eine oder mehrere Zeilenzahlen 44b in der Programmfehlerausgabe 70b von den entsprechenden Zeilenzahlen 44a in der Programmfehlerausgabe 70a abweichen. Somit kann der exakte Übereinstimmungscode 76b vom exakten Übereinstimmungscode 76a abweichen. Fehlerprotokoll-Code 78b jedoch kann mit Fehlerprotokoll-Code 78a übereinstimmen; da Fehlerprotokoll-Code 78 ausgelöst wird, nachdem die Zeilenzahlen 44 vom Programm-Stack-Fehlerprotokoll 40 gelöscht wurden. Anwendung 26 kann dann festlegen, dass der Fehlerprotokoll-Code 78b, der mit dem neuen Programmfehler von Programm 50b in Zusammenhang steht, derselbe ist wie der gespeicherte Fehlerprotokoll-Code 78a, der mit dem zuvor erkannten Programmfehler von Programm 50a in Zusammenhang steht. Entsprechend kann Anwendung 26 auf Datenbank 28 zugreifen, um gespeicherte Information, die in Zusammenhang mit dem Lösen des zuvor erkannten Programmfehlers von Programm 50a steht, zur Verwendung beim Lösen des neuen Programmfehlers von Programm 50b zur Verfügung zu stellen.
  • Das Beispiel weiterführend wird angenommen, dass Programm 50c einige Zeit, nachdem die numerischen Codes 74a in der Datenbank 28 gespeichert wurden, ausgeführt wird. Derselbe Code in func_jaa von Programm 50a, der verursacht hat, dass Programm 50a eine Programmfehlernachricht generiert, ist in Programm 50c enthalten. Somit generiert das Programm 50c, wenn Programm 50c ausgeführt wird, eine Programmfehlernachricht, die von der Anwendung 26 empfangen wird, wobei jedoch das Verfahren 42 in Programm 50c, das die Programmfehler generierende Code-Zeile enthält, den Namen func_kbb statt func_jaa trägt. Anwendung 26 kann eine Programmfehlerausgabe 70c generieren, die möglicherweise das Programm-Stack-Fehlerprotokoll 40c enthält, das angibt, dass func_kbb im Computerprogramm 50c die Quelle des Programmfehlers ist. Anwendung 26 kann dann einen oder mehrere numerische Codes 74 generieren, die eindeutige Identifikatoren für das Programm-Stack-Fehlerprotokoll 40c zur Verfügung stellen und somit für den neuen Programmfehler. Da in Programm 50c der Name der Methode 42, das die Fehler-Generierende Code-Zeile enthält, von dem Namen der Methode 42 in Programm 50a abweicht (func_kbb statt func_jaa), können eine oder mehrere Funktionen 42c im Programm-Stack-Fehlerprotokoll 40c von den entsprechenden Funktionen 42a im Programm-Stack-Fehlerprotokoll 40a abweichen. Somit können der exakte Übereinstimmungscode 76c und Fehlerprotokoll-Code 78c jeweils vom exakten Übereinstimmungscode 76a und Fehlerprotokoll-Code 78e abweichen. Dennoch kann der Anordnungs- Code 80c mit Anordnungs- Code 80a übereinstimmen, da der Anordnungs-Code 80 berechnet wird, indem nur eine bestimmte Zeilenzahl, wie die ersten drei Zeilen des Programm-Stack-Fehlerprotokolls 40, das den abweichenden Funktionsnamen enthält, verwendet wird. Anwendung 26 kann dann festlegen, dass der Anordnungs- Code 80c, der in Zusammenhang mit dem neuen Programmfehler von Programm 50c steht, sich am selben gespeicherten Platz befindet wie der gespeicherte Anordnungs- Code 80a, der in Zusammenhang mit dem zuvor erkannten Programmfehler von Programm 50a steht. Entsprechend kann Anwendung 26 auf Datenbank 28 zugreifen, um gespeicherte Information, die mit der Lösung des zuvor erkannten Programmfehlers von Programm 50a zum Lösen des neuen Programmfehlers in Programm 50c in Zusammenhang steht, zur Verfügung zu stellen.
  • 5 zeigt ein Beispielverfahren zum automatischen Erkennen eines Programmfehlers in einem Computerprogramm 50. Bei Schritt 100 erhält die Anwendung 26 vom Server- System 14 eine Programmfehlernachricht, die anzeigt, dass ein neuer Programmfehler während der Ausführung von Programm 50 aufgetreten ist. Bei Schritt 102 generiert die Anwendung 26 das Programm-Stack-Fehlerprotokoll 40 für den neuen Programmfehler, wobei das Programm-Stack-Fehlerprotokoll 40 anzeigt, dass die Quelle des neuen Programmfehlers innerhalb von Programm 50 liegt. Bei Schritt 104 generiert Anwendung 26 einen oder mehrere numerische Codes 74, die mit dem neuen Programmfehler in Zusammenhang stehen. Anwendung 26 kann zum Beispiel einen exakten Übereinstimmungscode 76, Fehlerprotokoll-Code 78, Anordnungs- Code 80 oder andere geeignete numerische Codes 74 generieren. Bei Schritt 106 vergleicht die Anwendung 26 einen ersten numerische Code 74, der in Zusammenhang mit dem neuen Programmfehler steht, wie der Übereinstimmungscode 76, mit einem oder mehreren entsprechenden gespeicherten ersten numerischen Codes 74, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzulegen, ob der neue Programmfehler derselbe wie wenigstens einer der zuvor erkannten Programmfehler ist. Die gespeicherten numerischen Codes können durch vorherige Operationen der Anwendung 26 (z.B. durch einen einer Vielzahl von Prozessen von Anwendung 26) oder durch eine andere Anwendung (z.B. durch einen einer Vielzahl von Prozessen der anderen Anwendung), durch einen Entwickler oder anderen Benutzer, der in Zusammenhang mit dem System 10 steht, oder in einer beliebigen anderen geeigneten Weise, entsprechend der Ausführungsform abgespeichert sein.
  • Bei Schritt 108 kann Anwendung 26 gespeicherte Information, die in Zusammenhang mit dem Lösen des übereinstimmenden zuvor erkannten Programmfehlers steht, zur Verwendung zum Lösen des neuen Programmfehlers bei Schritt 110 zur Verfügung stellen, sofern der ersten numerische Code 74, der mit dem neuen Programmfehler in Zusammenhang steht, derselbe ist, wie der erste numerische Code des zuvor erkannten Programmfehlers,. Die gespeicherte Information kann zum Beispiel einen fehlerfreien Code, erklärenden Text, einen Link zu solchem Code oder Text, eine URL (uniform resource locator) oder andere Adresse eines solchen Codes oder Textes oder jede andere geeignete gespeicherte Information umfassen. Die gespeicherte Information kann von vorherigen Operationen von der Anwendung 26 gespeichert worden sein (z.B. durch einen einer Vielzahl von Prozessen von Anwendung 26) oder durch eine andere Anwendung (z.B.
  • durch einen einer Vielzahl von Prozessen der anderen Anwendung), durch einen Entwickler oder anderen Benutzer, die in Zusammenhang mit System 10 stehen, oder in einer beliebigen anderen geeigneten Weise, entsprechend der Ausführungsform.
  • Falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit den ersten numerischen Code eines zuvor erkannten Programmfehlers bei Schritt 108 übereinstimmt, legt Anwendung 26 fest, ob es einen nächsten numerischen Code 74 zum Vergleich mit den entsprechenden gespeicherten numerischen Codes 74 von zuvor erkannten Programmfehlern bei Schritt 112 gibt. Falls ein nächster numerischer Code 74 bei Schritt 112 generiert wurde, wie Fehlerprotokoll-Code 76 zum Beispiel, kehrt das Verfahren zu Schritt 106 zurück, bei dem Anwendung 26 den numerischen Code 74, der in Zusammenhang mit zuvor erkannten Programmfehlern steht, mit gespeicherten numerischen Codes 74, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, vergleicht. Das Verfahren kann auf diese An fortgeführt werden, bis alle numerischen Codes 74 für die neuen Programmfehler, die bei Schritt 104 generiert wurden, mit den entsprechenden gespeicherten numerischen Codes 74, die für zuvor erkannte Programmfehler generiert wurden, verglichen wurden. In einer Ausführungsform zum Beispiel werden Übereinstimmungscode 76, Fehlerprotokoll-Code 78 und Anordnungs-Code 80 in dieser Reihenfolge verglichen. Falls ein nächster numerischer Code 74 bei Schritt 112 nicht generiert wurde, ist der Programmfehler ein komplett neuer Programmfehler bei Schritt 114 und die Anwendung 26 kann den einen oder mehrere numerische Codes 74, die in Zusammenhang mit dem neuen Programmfehler bei Schritt 116 stehen, zur Verwendung zum Erkennen nachfolgender Programmfehler verwenden.
  • Die vorliegende Erfindung betrachtet die Schritte des Verfahrens, das in jeder geeigneten Reihenfolge ausgeführt werden kann. Der erste numerische Code 74 zum Beispiel, der mit dem neuen Programmfehler in Zusammenhang steht, kann mit dem ersten numerische Code 74, der mit zuvor erkannten Programmfehlern in Zusammenhang steht generiert und verglichen werden bevor andere numerische Codes 74, die mit dem neuen Programmfehler in Zusammenhang stehen, generiert werden, wobei ein nächster numerischer Code 74 nur dann generiert wird, wenn keine Übereinstimmung festgestellt wurde. Bei einem anderen Beispiel können alle numerischen Codes 74, die mit dem neuen Programmfehler in Zusammenhang stehen (z.B. Übereinstimmungscode 76, Fehlerprotokoll-Code 78 und Anordnungs- Code 80), mit allen entsprechenden gespeicherten numerischen Codes 74, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, zur im Wesentlichen selben Zeit verglichen werden. Als weiteres Beispiel, selbst wenn ein numerischer Code 74, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem gespeicherten numerischen Code 74, der mit einem zuvor erkannten Programmfehler in Zusammenhang steht, übereinstimmt, können einer oder mehrere zusätzliche numerische Codes 74, die mit dem neuen Programmfehler in Zusammenhang stehen, mit entsprechenden numerischen Codes 74, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, verglichen werden, um zu verifizieren oder anderweitig zu bestätigen, dass der neue Programmfehler derselbe ist, wie der zuvor erkannte Programmfehler.
  • Obwohl die vorliegende Erfindung mit unterschiedlichen Ausführungsformen beschrieben wurde, können diverse Änderungen, Ersetzungen, Variationen, Abänderungen und Anpassungen für den Fachmann vorgeschlagen werden und es ist beabsichtigt, dass die Erfindung all solche Änderungen, Ersetzungen, Variationen, Abänderungen und Anpassungen, die mit dem Geist und Umfang der beiliegenden Ansprüche übereinstimmen, beinhaltet.

Claims (38)

  1. System zum automatischen Erkennen eines Programmfehlers in einem Computerprogramm, anwendbar zum: Empfangen einer Programmfehlernachricht die anzeigt, dass ein neuer Programmfehler während der Ausführung eines Programms aufgetreten ist; Generieren eines Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, das auf die Quelle des neuen Programmfehlers innerhalb des Programms hinweist; Anwenden einer ersten Operation auf zumindest einen ersten Teil des Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, um einen ersten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren; Vergleichen des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten ersten numerischen Codes, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzustellen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler; und, falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, derselbe ist, wie der erste numerische Code eines zuvor erkannten Programmfehlers, Bereitstellen von gespeicherter Information, die mit dem Lösen des zuvor erkannten Programmfehlers in Zusammenhang steht, zur Verwendung für das Lösen des neuen Programmfehlers.
  2. System nach Anspruch 1, wobei das Programm-Stack-Fehlerprotokoll auf eine oder mehrere Funktionen in dem Programm, das den Programmfehler generiert hat, hinweist und für jede Funktion eine Zeilennummer des Codes in der Funktion, in der der Programmfehler generiert wurde, aufweist.
  3. System nach Anspruch 1, wobei die erste Operation ein String.hashCode() oder Object.hashCode() aufweist.
  4. System nach Anspruch 1, wobei der erste Teil des Programm-Stack-Fehlerprotokolls das komplette Programm-Stack-Fehlerprotokoll aufweist, wobei die erste Operation den ersten numerischen Code berechnet, indem eine eindeutige Größe für den ersten Abschnitt des Programm-Stack-Fehlerprotokolls bestimmt wird.
  5. System nach Anspruch 1, weiter anwendbar zum: Anwenden einer zweiten Operation auf mindestens einen zweiten Teil eines Programm-Stack-Fehlerprotokolls, um einen zweiten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren, wobei der zweite Teil des Programm-Stack-Fehlerprotokolls eine Teilmenge des ersten Teils des Programm-Stack-Fehlerprotokolls ist; und Vergleichen des zweiten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten zweiten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um zu bestimmen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler.
  6. System nach Anspruch 5, wobei der zweite numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nur generiert und mit einem oder mehreren gespeicherten numerischen Codes, die mit dem zuvor erkannten Programmfehler in Zusammenhang stehen, verglichen wird, wenn der ersten numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten ersten numerischen Codes, die mit dem zuvor erkannten Programmfehlern in Zusammenhang stehen, übereinstimmt.
  7. System nach Anspruch 5, wobei: das Programm-Stack-Fehlerprotokoll auf eine oder mehrere Funktionen in dem Programm, das den Programmfehler generiert hat, hinweist und für jede Funktion eine Zeilennummer des Codes in der Funktion, in der der Programmfehler generiert wurde, aufweist; und der zweite Teil des Programm-Stack-Fehlerprotokolls das komplette Programm-Stack-Fehlerprotokoll aufweist, nachdem die Zeilennummern vom Programm-Stack-Fehlerprotokoll gelöscht wurden, wobei die zweite Operation den zweiten numerischen Code berechnet, indem eine eindeutige Größe für den zweiten Teil des Programm-Stack-Fehlerprotokolls bestimmt wird.
  8. System nach Anspruch 5, weiter anwendbar zum: Anwenden einer dritten Operation auf mindestens einen dritten Teil des Programm-Stack-Fehlerprotokolls, um einen dritten numerischen Code mit dem neuen Programmfehler zu generieren, wobei der dritte Abschnitt des Programm-Stack-Fehlerprotokolls eine Teilmenge des zweiten Teils des Programm-Stack-Fehlerprotokolls ist; und Vergleichen des dritten numerischen Codes mit dem neuen Programmfehler mit einem oder mehreren gespeicherten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzustellen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler.
  9. System nach Anspruch 8, wobei der dritte numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nur generiert und mit einem oder mehreren gespeicherten dritten numerischen Codes, die mit dem zuvor erkannten Programmfehler in Zusammenhang stehen, verglichen wird, wenn der zweite numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten zweiten numerischen Codes, die mit dem zuvor erkannten Programmfehler in Zusammenhang stehen, übereinstimmt.
  10. System nach Anspruch 8, wobei: das Programm-Stack-Fehlerprotokoll mindestens drei Zeilen aufweist und eine oder mehrere Funktionen in dem Programm, das den Programmfehler generiert hat, anzeigt und für jede Funktion eine Zeilennummer des Codes in der Funktion, in welcher der Programmfehler generiert wurde, aufweist; und der dritte Teil des Programm-Stack-Fehlerprotokolls die ersten drei Zeilen des Programm-Stack-Fehlerprotokolls aufweist, nachdem die Zeilennummern von den ersten drei Zeilen des Programm-Stack-Fehlerprotokolls gelöscht wurden, wobei die dritte Operation den dritten numerischen Code berechnet, indem eine eindeutige Größe für den dritten Teil des Programm-Stack-Fehlerprotokolls bestimmt wird.
  11. System nach Anspruch 1, weiter anwendbar, falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, übereinstimmt, zum Speichern des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, zur Verwendung um nachfolgende Programmfehler zu identifizieren.
  12. System nach Anspruch 1, wobei Bereitstellen von gespeicherter Information, die mit der Lösung des zuvor identifizierten Programmfehlers in Zusammenhang steht, zur Verwendung zum Lösen des neuen Programmfehlers aufweist, bereitzustellen eines oder mehrer aus: fehlerfreiem Code; erklärendem Text; eines Link zu mindestens einem solchen Code oder Text; und einer URL (uniform resource locator), die mit mindestens einem solchen Code oder Text in Zusammenhang steht.
  13. Verfahren zum automatischen Erkennen eines Programmfehlers in einem Computerprogramm, aufweisend: Empfangen einer Programmfehlernachricht, die anzeigt, dass ein neuer Programmfehler während der Ausführung eines Programms aufgetreten ist; Generieren eines Programm-Stack-Fehlerprotokolls für einen neuen Programmfehler, der auf die Quelle des neuen Programmfehlers innerhalb des Programms hinweist; Anwenden einer ersten Operation auf mindestens einen Teil eines Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, um einen ersten numerischen Code zu generieren, der mit dem neuen Programmfehler in Zusammenhang steht; Vergleichen des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten ersten numerischen Codes, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzustellen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler; und, falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, derselbe ist, wie der erste numerische Code eines zuvor erkannten Programmfehlers, Bereitstellen von gespeicherter Information, die mit dem Lösen des zuvor erkannten Programmfehlers in Zusammenhang steht, zur Verwendung für das Lösen des neuen Programmfehlers.
  14. Verfahren nach Anspruch 13, wobei das Programm-Stack-Fehlerprotokoll auf eine oder mehrere Funktionen in dem Programm, das den Programmfehler generiert hat, hinweist und für jede Funktion eine Zeilennummer des Codes in der Funktion, in der der Programmfehler generiert wurden, aufweist.
  15. Verfahren nach Anspruch 13, wobei die erste Operation ein String.hashCode() oder Object.hashCode() Verfahren aufweist.
  16. Verfahren nach Anspruch 13, wobei der erste Teil eines Programm-Stack-Fehlerprotokolls das komplette Programm-Stack-Fehlerprotokolle aufweist, wobei die erste Operation den ersten numerischen Code berechnet, indem eine eindeutige Größe für den ersten Teil des Programm-Stack-Fehlerprotokolls bestimmt wird.
  17. Verfahren nach Anspruch 13, weiter aufweisend: Anwenden einer zweiten Operation auf mindestens einen zweiten Teil des Programm-Stack-Fehlerprotokolls um einen zweiten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren, wobei der zweite Teil des Programm-Stack-Fehlerprotokolls eine Teilmenge des ersten Teils des Programm-Stack-Fehlerprotokolls ist; und Vergleichen des zweiten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten zweiten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzulegen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler.
  18. Verfahren nach Anspruch 17, wobei der zweite numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nur generiert und mit einem oder mehreren gespeicherten zweiten numerischen Codes, die mit dem zuvor erkannten Programmfehler in Zusammenhang stehen, verglichen wird, wenn der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, mit keinem der gespeicherten ersten numerischen Codes, die mit dem zuvor erkannten Programmfehler übereinstimmen, in Zusammenhang steht.
  19. Verfahren nach Anspruch 17, wobei das Programm-Stack-Fehlerprotokoll auf eine oder mehrere Funktionen im Programm hinweist, die den Programmfehler generiert haben, und für jede Funktion eine Zeilennummer des Codes in der Funktion, in der der Programmfehler generiert wurde, aufweist; und der zweite Teil des Programm-Stack-Fehlerprotokolls das kompletten Programm-Stack-Fehlerprotokoll aufweist, nachdem die Zeilennummern vom Programm-Stack-Fehlerprotokoll gelöscht wurden, wobei die zweite Operation den zweiten numerischen Code berechnet, indem eine eindeutige Größe für den zweiten Teil des Programm-Stack-Fehlerprotokolls bestimmt wird.
  20. Verfahren nach Anspruch 17, weiter aufweisend: Anwenden einer dritten Operation auf mindestens einen dritten Teil des Programm-Stack-Fehlerprotokolls, um einen dritten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren, wobei der dritte Teil des Programm-Stack-Fehlerprotokolls eine Teilmenge eines zweiten Teils eines Programm-Stack-Fehlerprotokolls ist; und Vergleichen des dritten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzulegen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler.
  21. Verfahren nach Anspruch 20, wobei der dritte numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nur generiert und mit einem oder mehreren gespeicherten dritten numerischen Codes, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, verglichen wird, wenn der zweite numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, mit keinem der gespeicherten zweiten numerischen Codes, die mit den zuvor erkannten Programmfehler in Zusammenhang stehen, übereinstimmt.
  22. Verfahren nach Anspruch 20, wobei: das Programm-Stack-Fehlerprotokoll mindestens drei Zeilen aufweist und auf eine oder mehrere Funktionen in dem Programm, die den Programmfehler generiert haben, hinweist und für jede Funktion eine Zeilennummer des Codes in der Funktion, in der der Programmfehler generiert wurde, aufweist; und der dritte Teil des Programm-Stack-Fehlerprotokolls die drei ersten Zeilen des Programm-Stack-Fehlerprotokolls aufweist, nachdem die Zeilennummern von den ersten drei Zeilen des Programm-Stack-Fehlerprotokolls gelöscht wurden, wobei die dritte Operation den dritten numerischen Code berechnet, indem eine eindeutige Größe für den dritten Teil des Programm-Stack-Fehlerprotokolls bestimmt wird.
  23. Verfahren nach Anspruch 13, weiter aufweisend, Speichern des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, zur Verwendung zum Lösen nachfolgender Programmfehler, falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, übereinstimmt.
  24. Verfahren nach Anspruch 13, wobei das Bereitstellen gespeicherter Information, die mit dem Lösen des zuvor erkannten Programmfehlers in Zusammenhang steht, zum Lösen des neuen Programmfehlers aufweist, bereitstellen von einem oder mehreren: fehlerfreiem Code; erklärendem Text; einem Link zu mindestens einem solchen Code oder Text, ein URL (uniform resource locator), die mit mindestens einem solchen Code oder Text in Zusammenhang steht.
  25. Software zum automatischen Erkennen eines Programmfehlers in einem Programm, wobei die Software in Computer-lesbaren Medien verkörpert ist und wenn diese ausgeführt wird, anwendbar ist zum: Empfangen einer Programmfehlernachricht die anzeigt, dass ein neuer Programmfehler während des Ausführens eines Programms aufgetreten ist; Generieren eines Programm-Stack-Fehlerprotokolls für einen neuen Programmfehler, der auf die Quelle eines neuen Programmfehlers innerhalb eines Programms hinweist; Anwenden einer ersten Operation auf mindestens einen Teil des Programm-Stack-Fehlerprotokolls für den neuen Programmfehler zum Generieren eines ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht; Vergleichen des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten numerischen Codes, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, um zu bestimmen, ob ein neuer Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler; und falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, derselbe ist, wie der erste numerische Code des zuvor erkannten Programmfehlers, Bereitstellen gespeicherter Information, die in Zusammenhang mit dem Lösen des zuvor erkannten Programmfehlers steht, zum Lösen des neuen Programmfehlers.
  26. Software nach Anspruch 25, wobei das Programm-Stack-Fehlerprotokoll auf eine oder mehrere Funktionen in dem Programm hinweist, die den Programmfehler generiert haben und für jede Funktion eine Zeilennummer eines Codes in der Funktion, in welcher der Programmfehler generiert wurde, aufweist.
  27. Software nach Anspruch 25, wobei die erste Operation eine String.hashCode() oder Object.hashCode() Methode aufweist.
  28. Software nach Anspruch 25, wobei der erste Teil des Programm-Stack-Fehlerprotokolls das komplette Programm-Stack-Fehlerprotokoll aufweist, wobei die erste Operation den ersten numerischen Code berechnet, indem eine eindeutige Größe für den ersten Abschnitt des Programm-Stack-Fehlerprotokolls bestimmt wird.
  29. Software nach Anspruch 25, weiter anwendbar zum: Anwenden einer zweiten Operation auf mindestens einen zweiten Teil eines Programm-Stack-Fehlerprotokolls, um einen zweiten numerischen Code, der mit dem ersten Programmfehler in Zusammenhang steht, zu generieren, wobei der zweite Teil des Programm-Stack-Fehlerprotokolls eine Teilmenge des ersten Teils des Programm-Stack-Fehlerprotokolls ist; und Vergleichen des zweiten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um zu bestimmen, ob der neue Programmfehler mit mindestens einem der zuvor erkannten Programmfehler übereinstimmt.
  30. Software nach Anspruch 29, wobei der zweite numerische Code, der mit dem ersten Programmfehler in Zusammenhang steht, nur generiert und mit dem einen oder mehreren gespeicherten zweiten numerischen Codes, die mit dem zuvor erkannten Programmfehler in Zusammenhang stehen, verglichen wird, wenn der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, übereinstimmen.
  31. Software nach Anspruch 29, wobei: das Programm-Stack-Fehlerprotokoll auf eine oder mehrere Funktionen des Programms, die den Programmfehler generiert haben, hinweist und für jede Funktion eine Zeilennummer des Codes der Funktion, in der der Programmfehler generiert wurde, aufweist; und der zweite Teil des Programm-Stack-Fehlerprotokolls das komplette Programm-Stack-Fehlerprotokoll aufweist, nachdem die Zeilennummern vom Programm-Stack-Fehlerprotokoll gelöscht wurden, wobei der zweite Vorgang den zweiten numerischen Code berechnet, indem eine eindeutige Größe für den zweiten Teil des Programm-Stack-Fehlerprotokolls bestimmt wird.
  32. Software nach Anspruch 29, weiter anwendbar zum: Anwenden einer dritten Operation auf mindestens einen dritten Teil des Programm-Stack-Fehlerprotokolls, um einen dritten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren, wobei der dritte Teil des Programm-Stack-Fehlerprotokolls eine Teilmenge des zweiten Teils des Programm-Stack-Fehlerprotokolls ist; und Vergleichen des dritten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten dritten numerischen Codes, die mit zuvor erkannten Programmfehlern in Zusammenhang stehen, um zu bestimmen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler.
  33. Software nach Anspruch 32, wobei der dritte numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nur generiert und mit dem einen oder mehreren gespeicherten dritten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, verglichen wird, wenn der zweite numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, mit keinem der gespeicherten zweiten numerischen Codes, mit dem zuvor erkannten Programmfehler in Zusammenhang stehen, übereinstimmt.
  34. Software nach Anspruch 32, wobei: das Programm-Stack-Fehlerprotokoll mindestens drei Zeilen aufweist und auf eine oder mehrere Funktionen in dem Programm, die den Programmfehler generiert haben, hinweist und für jede Funktion eine Zeilennummer eines Codes in der Funktion, in welcher der Programmfehler generiert wurde, aufweist; und der dritte Teil des Programm-Stack-Fehlerprotokolls die ersten drei Zeilen des Programm-Stack-Fehlerprotokolls aufweist, nachdem die Zeilennummern von den ersten drei Zeilen des Programm-Stack-Fehlerprotokolls gelöscht wurden, wobei die dritte Operation den dritten numerischen Code berechnet, in dem eine eindeutige Größe für den dritten Teil des Programm-Stack-Fehlerprotokolls bestimmt wird.
  35. Software nach Anspruch 25, weiter anwendbar zum Speichern des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, zur Verwendung zum Lösen nachfolgender Programmfehler, falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, übereinstimmt.
  36. 3Sooware nach Anspruch 25, wobei das Bereitstellen gespeicherter Information, die mit dem Lösen des zuvor erkannten Programmfehlers in Zusammenhang steht, zum Lösen des neuen Programmfehlers aufweist, bereitzustellen von einem oder mehreren: fehlerfreiem Code; erklärendem Text; einem Link zu mindestens einem solchen Code oder Text, einer URL (uniform resource locator), die mit mindestens einem solchen Code oder Text in Zusammenhang steht.
  37. System zum automatischen Erkennen von Programmfehlern in einem Programm, aufweisend: Mittel zum Empfangen einer Programmfehlernachricht, die anzeigt, dass ein neuer Programmfehler während des Ausführens eines Programms aufgetreten ist; Mittel zum Generieren eines Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, der auf die Quelle des neuen Programmfehlers innerhalb des Programms hinweist; Mittel zum Anwenden einer ersten Operation auf mindestens einen ersten Teil des Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, um einen ersten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren; Mittel zum Vergleichen des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzulegen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler; und Mittel zur Bereitstellen gespeicherter Information, die mit der Lösung des zuvor erkannten Programmfehlers in Zusammenhang steht, zur Verwendung zum Lösen des neuen Programmfehlers, falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, derselbe ist, wie der erste numerische Code eines zuvor erkannten Programmfehlers.
  38. System zum automatischen Erkennen eines Programmfehlers innerhalb eines Programms, anwendbar zum: Empfangen einer Programmfehlernachricht, die anzeigt, dass ein neuer Programmfehler während des Ausführens eines Programms aufgetreten ist; Generieren eines Programm-Stack-Fehlerprotokolls für den neuen Programmfehler, der auf die Quelle des neuen Programmfehlers innerhalb des Programms hinweist und eine oder mehrere Funktionen im Programm anzeigt, die den Programmfehler generiert haben, wobei das Programm-Stack-Fehlerprotokoll mindestens drei Zeilen und für jede Funktion eine Zeilennummer eines Codes in der Funktion, in welcher der Programmfehler generiert wurde, anzeigt; Anwenden eines String.hashCode() oder Object.hashCode() Verfahrens auf das gesamte Programm-Stack-Fehlerprotokoll für einen neuen Programmfehler, um einen ersten numerischen Code, der mit dem Programmfehler in Zusammenhang steht, zu generieren; Anwenden eines String.hashCode() oder Object.hashCode() Verfahrens auf das gesamte Programm-Stack-Fehlerprotokoll, nachdem die Zeilennummern vom Programm-Stack-Fehlerprotokoll gelöscht wurden, um einen zweiten numerischen Code, der mit dem Programmfehler in Zusammenhang steht, zu generieren; Anwenden eines String.hashCode() or Object.hashCode() Verfahrens auf die ersten drei Zeilen des Programm-Stack-Fehlerprotokolls, nachdem die Zeilenzahlen aus den ersten drei Zeilen des Programm-Stack-Fehlerprotokolls gelöscht wurden, um einen dritten numerischen Code, der mit dem neuen Programmfehler in Zusammenhang steht, zu generieren; Vergleichen des ersten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten ersten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzulegen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler; Vergleichen des zweiten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren gespeicherten zweiten numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um festzulegen, ob der neue Programmfehler derselbe ist wie mindestens einer der zuvor erkannten Programmfehler, falls der erste numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten ersten numerischen Codes, die mit dem zuvor erkannten Programmfehlern in Zusammenhang stehen, übereinstimmt; und Vergleichen des dritten numerischen Codes, der mit dem neuen Programmfehler in Zusammenhang steht, mit einem oder mehreren numerischen Codes, die mit den zuvor erkannten Programmfehlern in Zusammenhang stehen, um zu bestimmen, ob der neue Programmfehler derselbe ist, wie mindestens einer der zuvor erkannten Programmfehler, falls der zweite numerische Code, der mit dem neuen Programmfehler in Zusammenhang steht, nicht mit einem der gespeicherten zweiten numerischen Codes, die mit dem zuvor erkannten Programmfehler in Zusammenhang stehen, übereinstimmt.
DE10348591A 2002-10-21 2003-10-20 Automatically identifying a program error in a computer program Ceased DE10348591A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US274761 2002-10-21
US10/274,761 US7039833B2 (en) 2002-10-21 2002-10-21 Stack trace generated code compared with database to find error resolution information

Publications (1)

Publication Number Publication Date
DE10348591A1 true DE10348591A1 (de) 2004-05-19

Family

ID=32093131

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10348591A Ceased DE10348591A1 (de) 2002-10-21 2003-10-20 Automatically identifying a program error in a computer program

Country Status (3)

Country Link
US (1) US7039833B2 (de)
DE (1) DE10348591A1 (de)
TW (1) TWI271617B (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240247B2 (en) * 2002-04-29 2007-07-03 Intel Corporation Providing a chain of tokenized error and state information for a call stack
US7392430B2 (en) * 2003-03-28 2008-06-24 International Business Machines Corporation System and program product for checking a health of a computer system
US7398433B2 (en) * 2004-03-31 2008-07-08 Microsoft Corporation System and method of preventing a web browser plug-in module from generating a failure
US7325166B2 (en) * 2004-06-23 2008-01-29 Autodesk, Inc. Hierarchical categorization of customer error reports
US20060190770A1 (en) * 2005-02-22 2006-08-24 Autodesk, Inc. Forward projection of correlated software failure information
US7469362B2 (en) * 2005-04-15 2008-12-23 Microsoft Corporation Using a call stack hash to record the state of a process
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7702959B2 (en) * 2005-08-02 2010-04-20 Nhn Corporation Error management system and method of using the same
US20070038896A1 (en) 2005-08-12 2007-02-15 International Business Machines Corporation Call-stack pattern matching for problem resolution within software
US9064046B1 (en) * 2006-01-04 2015-06-23 Emc Corporation Using correlated stack traces to determine faults in client/server software
US7698597B2 (en) * 2006-02-28 2010-04-13 International Business Machines Corporation Method of isolating erroneous software program components
US20070214396A1 (en) * 2006-03-08 2007-09-13 Autodesk, Inc. Round-trip resolution of customer error reports
US7823053B2 (en) * 2006-12-19 2010-10-26 International Business Machines Corporation System and method for searching error messages
JP4585534B2 (ja) * 2007-03-01 2010-11-24 富士通株式会社 システム監視プログラム、システム監視方法およびシステム監視装置
US7765432B2 (en) * 2007-03-07 2010-07-27 Microsoft Corporation Reporting diagnostic information for code of an application program interface
US7739551B2 (en) 2007-06-20 2010-06-15 Microsoft Corporation Web page error reporting
GB2458201A (en) * 2008-03-12 2009-09-16 Ibm Creating a program problem signature data base during program testing to diagnose problems during program use
JP5353063B2 (ja) * 2008-05-30 2013-11-27 富士通株式会社 対処知識の生成プログラム、対処知識の生成装置および対処知識の生成方法
JP2010140256A (ja) * 2008-12-11 2010-06-24 Toshiba Corp 情報処理装置および診断結果通知方法
US8589739B2 (en) * 2009-03-16 2013-11-19 International Business Machines Corporation Product limitations advisory system
US9020939B2 (en) 2009-06-30 2015-04-28 International Business Machines Corporation Correlating queries issued by applications with their source lines and analyzing applications for problem determination and where used analysis
US8806510B2 (en) * 2009-09-10 2014-08-12 International Business Machines Corporation Determining operator partitioning constraint feasibility
CN102043712B (zh) * 2009-10-19 2013-03-13 杭州华三通信技术有限公司 错误信息输出方法及装置
US8539285B2 (en) * 2010-06-22 2013-09-17 International Business Machines Corporation Systems for agile error determination and reporting and methods thereof
US8627308B2 (en) 2010-06-30 2014-01-07 International Business Machines Corporation Integrated exchange of development tool console data
US8949675B2 (en) 2010-11-30 2015-02-03 Microsoft Corporation Error report processing using call stack similarity
US20120239981A1 (en) * 2011-03-15 2012-09-20 International Business Machines Corporation Method To Detect Firmware / Software Errors For Hardware Monitoring
US8943370B2 (en) * 2012-06-21 2015-01-27 International Business Machines Corporation Trace value correlation with data field declarations
US9164821B2 (en) 2012-12-14 2015-10-20 International Business Machines Corporation Performing diagnostic tracing of an executing application to identify suspicious pointer values
US9535819B2 (en) * 2015-02-20 2017-01-03 International Business Machines Corporation Identifying the lines of code that caused the error as identified in the stack trace in a source code version that generated the stack trace that does not reside on the user's computing device
CN108170609A (zh) * 2018-01-11 2018-06-15 五八有限公司 程序漏洞的定位方法、装置、计算机设备及可读存储介质
WO2020224769A1 (en) * 2019-05-07 2020-11-12 1Tcompany Ab Methods and arrangements for managing a program error of a computer program executed by a device
US20210011717A1 (en) * 2019-05-20 2021-01-14 Microsoft Technology Licensing, Llc Verified Stack Trace Generation And Accelerated Stack-Based Analysis With Shadow Stacks
JP7256935B2 (ja) * 2019-09-02 2023-04-13 富士通株式会社 辞書作成装置及び辞書作成方法
TWI773939B (zh) * 2019-11-12 2022-08-11 緯創資通股份有限公司 版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體
US11853149B2 (en) * 2021-09-10 2023-12-26 International Business Machines Corporation Generating error event descriptions using context-specific attention

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111384A (en) * 1990-02-16 1992-05-05 Bull Hn Information Systems Inc. System for performing dump analysis
JPH06259241A (ja) * 1993-03-04 1994-09-16 Nec Software Ltd 実行エラーメッセージ表示方法
US5928369A (en) * 1996-06-28 1999-07-27 Synopsys, Inc. Automatic support system and method based on user submitted stack trace
US5790780A (en) * 1996-07-16 1998-08-04 Electronic Data Systems Corporation Analysis of failures in a computing environment
US6629267B1 (en) * 2000-05-15 2003-09-30 Microsoft Corporation Method and system for reporting a program failure
US6738928B1 (en) * 2000-06-19 2004-05-18 Hewlett-Packard Development Company, L.P. Method and expert system for analysis of crash dumps
US6681344B1 (en) * 2000-09-14 2004-01-20 Microsoft Corporation System and method for automatically diagnosing a computer problem
US7320125B2 (en) * 2001-05-24 2008-01-15 Techtracker, Inc. Program execution stack signatures
US6859893B2 (en) * 2001-08-01 2005-02-22 Sun Microsystems, Inc. Service guru system and method for automated proactive and reactive computer system analysis

Also Published As

Publication number Publication date
US7039833B2 (en) 2006-05-02
US20040078689A1 (en) 2004-04-22
TWI271617B (en) 2007-01-21
TW200408940A (en) 2004-06-01

Similar Documents

Publication Publication Date Title
DE10348591A1 (de) Automatically identifying a program error in a computer program
DE69932371T2 (de) Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms
DE69713409T2 (de) Dokumenten-Verwaltungssystem unter Verwendung von objekt- und agentorientierten Methoden
DE69616178T2 (de) Verfahren und Vorrichtung für eine Navigationsschnittstelle und eine Netzwerkarchitektur, um Operationen auf verteilten Dateien in einem Computernetzwerk auszuführen
DE69812899T2 (de) Webagent zur anforderung von mehreren prozessen
DE68926345T2 (de) Datenverarbeitungsnetzwerk
DE60317654T2 (de) Verfahren und vorrichtung zur veränderung eines kernmodules, um es auf mehreren kernversionen lauffähig zu machen
DE60021066T2 (de) Prüfung eines Softwarepakets
DE3842289C2 (de) Verfahren zur Entwicklung von Programmen für ein verteiltes Datenverarbeitungssystem
DE112010003932T5 (de) Automatische Korrektur einer Anwendung auf der Grundlage des Laufzeitverhaltens
EP1723513A1 (de) Verfahren zur konfiguration eines computerprogramms
EP2137615B1 (de) Verfahren zum rechnergestützten ermitteln der abhängigkeiten einer vielzahl von modulen eines technischen systems, insbesondere eines softwaresystems
DE112010004530T5 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten
CN111190807A (zh) 一种埋点测试方法及设备
DE69904766T2 (de) Kodenübersetzer
EP1035707A2 (de) Verfahren, Erzeugungsmodul, Server, Steuermodul und Speichermittel zum Erstellen von Validierungsregeln
DE10303054A1 (de) Verifizieren einer Programmversion
DE102015120462A1 (de) Rte-code-generierungsverfahren und vorrichtung zu dessen durchführung
EP1005216A2 (de) Verfahren und Vorrichtung zur Validierung von Konfigurationsdaten für Telekommunikationssysteme
EP1622022A1 (de) Automatische Erzeugung von Testfällen
EP2302554A2 (de) Verfahren zur Kennzeichnung eines in einem Computerspeichersystem enthaltenen Computerprogrammabschnitts
WO2003094093A2 (de) Vergleich von verarbeitungsprotokollen
DE202012013449U1 (de) System für In-Line-Einfügung von Scriptabhängigkeiten
DE10324384B3 (de) Behandlung eines Fehlerereignisses bei der Installation eines Anwendungsprogramms in einem tragbaren Datenträger
DE10139068B4 (de) Verfahren zum Ermitteln einer Folge von Befehlen und entsprechendes Computerprogramm

Legal Events

Date Code Title Description
8128 New person/name/address of the agent

Representative=s name: DF-MP, 80333 MUENCHEN

8110 Request for examination paragraph 44
R082 Change of representative

Representative=s name: DF-MP, DE

Representative=s name: DF-MP, 80333 MUENCHEN, DE

R081 Change of applicant/patentee

Owner name: JDA SOFTWARE GROUP, INC., SCOTTSDALE, US

Free format text: FORMER OWNER: I2 TECHNOLOGIES, INC., DALLAS, TEX., US

Effective date: 20120119

Owner name: JDA SOFTWARE GROUP, INC., US

Free format text: FORMER OWNER: I2 TECHNOLOGIES, INC., DALLAS, US

Effective date: 20120119

R082 Change of representative

Representative=s name: DF-MP DOERRIES FRANK-MOLNIA & POHLMAN PATENTAN, DE

Effective date: 20120119

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20150306