DE69919404T2 - On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren - Google Patents

On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren Download PDF

Info

Publication number
DE69919404T2
DE69919404T2 DE69919404T DE69919404T DE69919404T2 DE 69919404 T2 DE69919404 T2 DE 69919404T2 DE 69919404 T DE69919404 T DE 69919404T DE 69919404 T DE69919404 T DE 69919404T DE 69919404 T2 DE69919404 T2 DE 69919404T2
Authority
DE
Germany
Prior art keywords
machine
target machine
data
program
host
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.)
Expired - Lifetime
Application number
DE69919404T
Other languages
English (en)
Other versions
DE69919404D1 (de
Inventor
Eli Shagam
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.)
EMC Corp
Original Assignee
EMC Corp
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 EMC Corp filed Critical EMC Corp
Publication of DE69919404D1 publication Critical patent/DE69919404D1/de
Application granted granted Critical
Publication of DE69919404T2 publication Critical patent/DE69919404T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3636Software debugging by tracing the execution of the program

Description

  • Die Erfindung betrifft im allgemeinen Verfahren und eine Vorrichtung zur Quellcode-Fehlerbeseitigung und insbesondere die Fehlerbeseitigung in Software-Programmen, die Ablaufverfolgungspunkte verwendet, die unter Verwendung eines Fehlerbeseitigungswerkzeugs gesetzt werden.
  • Da Computerprogramme zunehmend komplex werden, werden die Programme höchstwahrscheinlich Fehler oder „Mucken" enthalten, die die richtige Leistung und Operation des Programms in seiner beabsichtigten Weise verhindern. Das Programm wird dann fehlerbereinigt, was der Prozeß des Lokalisierens und Korrigierens der Fehler im Programm ist. In komplexen Programmen kann der Fehlerbeseitigungsprozeß ziemlich schwierig sein, und folglich verwendet ein Verfahren zur Fehlerbeseitigung in Software das Einsetzen von Unterbrechungspunkten an Stellen im Code. Die Ausführung des Quellcodeprogramms hält dann immer an, wenn ein Unterbrechungspunkt angetroffen wird, um es dem Programmierer zu gestatten, den Zustand bestimmter Variablen und folglich das Verhalten des Programms am Unterbrechungspunkt zu beobachten.
  • In bestimmten Anwendungen kann das Stoppen des Programms an einem Unterbrechungspunkt für das System ziemlich unterbrechend sein. So stoppt zum Beispiel in einem großen gemeinsam genutzten Datenspeicherteilsystem, wie der Produktreihe EMC Symmetrix, das Anhalten des Programms tatsächlich das gesamte Datenlesen, Schreiben und den Zwischenspeicherprozeß. In diesem Fall kann nicht nur der Datenfluß in der Größenordnung von mehreren Minuten oder mehr unterbrochen werden, sondern es kann das Ver halten des Systems, und folglich die Analyse eines Fehlers, vollständig durch den Systemstopp maskiert werden, da zum Beispiel andere externe Teilsysteme dann in einen Wiederherstellungsmodus gehen.
  • Es ist bekannt, Daten, die Ablaufverfolgungsereignisse betreffen, in Pufferspeichern in der Symmetrix-Vorrichtung zu späteren Analyse zu speichern. Dieses Verfahren hat den Vorteil, das System nicht zu unterbrechen, während gleichzeitig, falls notwendig, zur späteren Überprüfung und Analyse Daten gesammelt werden. Ein solches System ermöglicht es dem Benutzer typischerweise nicht, dynamisch die Systemsoftware und Ablaufverfolgungspunkte abzuändern oder zu tauschen, oder gleichzeitig die Systemsoftware zu analysieren, wenn das Programm weiterläuft.
  • Als Ergebnis kann erfindungsgemäß ein Fehlerbeseitigungssystemwerkzeug und Verfahren bereitgestellt werden, die eine unmittelbare und bestimmte Interaktion online mit dem Software-Programm ermöglichen, das zum Beispiel in einen großen gemeinsam genutzten Datenspeichersystem arbeitet. Zusätzlich stellt das Verfahren und die Vorrichtung der vorliegenden Erfindung vorteilhafterweise einen Online-Zugriff bereit, um Fehler im System zu beseitigen, während gleichzeitig der Betrieb des Systems nicht merklich unterbrochen wird, um jeden Fehler zu maskieren, der in der Operation des Quellcodes auftritt.
  • In Andreas Danuser u. a.: „Was geschieht wann wo im Programm?", Technische Rundschau, B. 82, Nr. 35, 31. August 1990, Seiten 48–57, Hallwag Verlag, Bern, CH, wird ein nicht unterbrechendes Verfahren zur Ablaufverfolgung eines laufenden Programms beschrieben, das das Instrumentarium des Quellcodes und den Neuaufbau und das Laden des binären ausführbaren Codes benötigt.
  • Die Erfindung wird durch die Ansprüche definiert.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Fehlerbeseitigung in Software bereitgestellt, die in einer Zielmaschine ausgeführt wird, das aufweist: Definieren in einer Hostmaschine von Ablaufverfolgungspunktstellen und Variablen, die durch die Software erfaßt werden sollen, Senden der Ablaufverfolgungspunktstellen und Variablen an die Zielmaschine, Ausführen eines Stumpf-Programms in der Zielmaschine, Sammeln unter Verwendung des Stumpf-Programms von Daten, die die Variablen repräsentieren, die durch die Hostmaschine ausgewählt werden, wenn ein Ablaufverfolgungspunkt erreicht wird, und Senden der gesammelten Daten online an die Hostmaschine, ohne den Betrieb der Zielmaschine zu stoppen.
  • Gemäß einem zweiten Aspekt der Erfindung wird eine Vorrichtung zur Fehlerbeseitigung in Software bereitgestellt, die in einer Zielmaschine ausgeführt wird, die aufweist: eine Einrichtung zum Definieren in einer Hostmaschine von Ablaufverfolgungspunktstellen und Variablen, die durch die Software erfaßt werden sollen, eine Einrichtung zum Senden der Ablaufverfolgungspunktstellen und Variablen an die Zielmaschine, eine Einrichtung zur Ausführung eines Stumpf-Programms in der Zielmaschine, eine Einrichtung zur Sammlung unter Verwendung des Stumpf-Programms von Daten, die die Variablen repräsentieren, die durch die Hostmaschine ausgewählt werden, wenn ein Ablaufverfolgungspunkt einbezogen wird, und eine Einrichtung zum Senden der gesammelten Daten online an die Hostmaschine, ohne den Betrieb der Zielmaschine zu stoppen.
  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Online-Fehlerbeseitigung in Software, die auf einer Zielmaschine ausgeführt wird. Das Verfahren weist auf: Definieren von Ablaufverfolgungspunktstellen (Adressen) und Daten und Variablen, die an diesen Ablaufverfolgungspunkten in der Software auf der Hostmaschine gesammelt werden sollen; Senden der Ablaufverfolgungspunktstellen und Variablen, zum Beispiel in ei nem Fehlerbeseitigungsskript, an die Zielmaschine, Unterhalten eines Stumpf-Programms in der Zielmaschine, um das Fehlerbeseitigungsskript auszuführen, Sammeln der Daten und Variablen an den vordefinierten Ablaufverfolgungspunkten unter Verwendung des Stumpf-Programms, wobei die Daten Variablen repräsentieren, die durch das Hostmaschinen-Fehlerbeseitigungsskript identifiziert werden, wenn ein Ablaufverfolgungspunkt erreicht wird, und Senden der gesammelten Daten online bei der Anforderung der Hostmaschine, ohne den Betrieb der Zielmaschine merklich zu unterbrechen oder zu stoppen. In einer besonderen Ausführungsform ist die Zielmaschine ein Plattenlaufwerkskontroller.
  • In anderen Aspekten kann die Erfindung aufweisen: Bestimmen in der Zielmaschine unter Verwendung einer Ausdrucksauswertung von Stellen für jede Variable, für die Daten gesammelt werden sollen, wenn ein Ablaufverfolgungspunkt erreicht und durchlaufen wird, wobei die Variablen ursprünglich durch das Hostmaschinen-Fehlerbeseitigungsskript in der Form numerischer Ausdrücke aus einer Compiler-Symboltabelle spezifiziert werden. In einem anderen Aspekt können die Ablaufverfolgungspunkte automatisch auf der Hostmaschine gesetzt werden, und die Variablen werden automatisch in der Hostmaschine identifiziert.
  • In einem anderen Aspekt werden die gesammelten Daten vorzugsweise zu einem Puffer in der Zielmaschine zur Speicherung geleitet; und wenn der Puffer überfließt, durchlaufen die Daten den Puffer zyklisch, wodurch die alten Daten gelöscht werden und sie durch neue Daten ersetzt werden. Auf diese Weise werden nur die letzten Datenrahmen im Puffer gehalten.
  • In einem anderen bevorzugten Aspekt sorgt die Vorrichtung der Erfindung für eine Fehlerbeseitigungssoftware (den Stumpf), die in einer Zielmaschine ausgeführt wird, und weist auf: eine Hostmaschine, Elemente zum Definieren in der Hostmaschine von Ablaufverfolgungspunktstellen und Variablen, die durch die Software gesammelt werden sollen, einen Schaltungskomplex zum Senden der Ablaufverfolgungspunktstellen und Variablen an die Zielmaschine, einen Schaltungskomplex zur Ausführung eines Stumpf-Programms in der Zielmaschine, einen Schaltungskomplex zur Sammlung unter Verwendung des Stumpf-Programms von Daten, die die Variablen repräsentieren, die durch den Benutzer auf der Hostmaschine ausgewählt werden. Wenn ein Ablaufverfolgungspunkt erreicht wird, sendet der Schaltungskomplex die gesammelten Daten online zur Hostmaschine, ohne den Betrieb der Zielmaschine zu stoppen.
  • In noch einem anderen bevorzugten Aspekt der Erfindung ist die Vorrichtung eine computerimplementierte Vorrichtung zur Fehlerbeseitigung von einem Hostcomputer von Software, die in einer Zielmaschine ausgeführt wird. Die Erfindung sorgt dafür, daß Softwaremedien sowohl in der Zielmaschine als auch dem Hostcomputer die Schritte implementieren: Definieren im Hostcomputer von Ablaufverfolgungspunktstellen und Variablen, die durch die Software auf der Zielmaschine gesammelt werden sollen, Senden der Ablaufverfolgungspunktstellen und Variablen an die Zielmaschine, Ausführen eines Stumpf-Programms in der Zielmaschine, Sammeln unter Verwendung des Stumpf-Programms von Daten, die die Variablen repräsentieren, die durch den Benutzer ausgewählt werden, zum Beispiel auf dem Hostcomputer, wenn ein Ablaufverfolgungspunkt erreicht und durchlaufen wird, und Liefern der gesammelten Daten online an den Hostcomputer, ohne den Betrieb der Zielmaschine zu stoppen.
  • Das Verfahren und die Vorrichtung der Erfindung ermöglichen folglich vorteilhafterweise eine Fehlerbeseitigung des Zielcomputers oder Plattenkontrollers mit einer minimalen Störung des Betriebs der Zielmaschine.
  • Andere Merkmale und Vorteile der Erfindung werden einem auf diesem Gebiet geübten aus der folgenden Beschreibung der Erfindung deutlich werden, die zusammen mit den Zeichnungen vorgenommen wird. Es zeigen
  • 1 ein allgemeines Blockdiagramm, das das System darstellt, in dem die Erfindung insbesondere Anwendung findet;
  • 2 ein Blockdiagramm, das eine typische erfindungsgemäße Umgebung detaillierter darstellt;
  • 3 ein schematisches Blockdiagramm, das eine typische erfindungsgemäße Operation darstellt; und
  • 4 einen Ablaufplan, der die Operation einer erfindungsgemäßen Ausführungsform darstellt.
  • Auf 1 bezugnehmend, betrifft eine bevorzugte Ausführungsform der Erfindung ein Computersystem, wobei mindestens ein und wahrscheinlicher mehrere Hosts 12a, 12b, ..., 12n mit einem Speichermodulsystem 14, wie dem Plattenanordnungsspeichersystem EMC Symmetrix verbunden sind. Das Speichermodul 14 dient als die Schnittstelle zwischen den Hostcomputern und mehreren Massenspeichervorrichtungen, wie zum Beispiel Plattenlaufwerken 16a, 16b, ..., 16k. Daten, die durch den Host geschrieben oder aus den Plattenlaufwerkselementen gelesen werden, gehen durch das Speichermodulsystem, das als ein Zweiweg-Kommunikationsweg mit wesentlichen Fähigkeiten dient. Zum Beispiel werden in manchen Systemen die Daten aus dem Host einheitlich über alle oder einige der Plattenspeichervorrichtungen verteilt; und in anderen Systemen werden die Daten vom Host auf den Plattenlaufwerken 16 gemäß einem RAID-Protokoll gespeichert. In noch anderen Ausführungsformen der Erfindung können alle Daten von einem besonderen Host auf einem einzelnen Plattenlaufwerk oder in unterschiedlichen logischen Datenträgern desselben oder unterschiedlicher Plattenlaufwerke gespeichert werden, abhängig von der Beschaffenheit und der Quelle der Daten und des Hosts. Ein Hostcomputer kann außerdem Daten von einem oder mehreren der Plattenlaufwerkseinheiten lesen.
  • Wenn ein Problem auftritt, das die Leistung des Systems beeinträchtigt, zum Beispiel ein nicht behebbarer Software- Fehler, eine Abnahme des Durchsatzes oder „Mucken" in neu installierter Software, kann das Problem entweder im Host, dem Speichermodul den Plattenlaufwerkselementen oder in deren Kombinationen auftreten. Um das Problem zu analysieren und zu korrigieren, ist es wünschenswert, den/die Computer des Kunden oder den Kontroller nicht herunterzufahren, wodurch sie abgetrennt werden und vielleicht die Fähigkeit des Kunden, Geschäfte zu machen, beträchtlich beeinträchtigt wird. Erfindungsgemäß werden daher, wenn zum Beispiel eine Software-Mucke verdächtigt wird, oder um Systemparameter an ausgewählten Ereigniszeiten des Systembetriebs zu lesen, Ablaufverfolgungspunkte in die Software eingesetzt und Daten gesammelt, im wesentlichen ohne dem System des Kunden irgendeine bedeutende Leistungsverschlechterung aufzuerlegen. Wie im folgenden beschrieben wird, können dann Daten entfernt zur Analyse gesammelt werden, ohne den Systembetrieb herunterzufahren, anzuhalten oder anderweitig wesentlich zu stören.
  • Auf 2 bezugnehmend, ist in einer besonderen erfindungsgemäßen Ausführungsform der Plattenkontroller so gestaltet, daß er mehrere Kanalleiteinrichtungen 30 aufweist (die am häufigsten als SCSI-Adapter bezeichnet werden, wenn sie gemäß einem SCSI-Protokoll arbeiten), die mit einem globalen Speicher 32 verbunden sind, durch den alle Daten und Befehle fließen. Der globale Speicher 32 ist mit mehreren Plattenleiteinrichtungen 34 verbunden (die ebenfalls typischerweise SCSI-Adapter sind), die mit den Plattentreibern 16 verbunden sind. Gemäß dieser besonderen Ausführungsform der Erfindung arbeitet jede Kanalleiteinrichtung über Kanäle 36 und 38 unter Verwendung eines SCSI-Protokolls. Jede Kanalleiteinrichtung 30 kann mit einem oder mehreren Hostcomputer über Busse 36 verbunden sein (typischerweise ein Host I/O-Kontroller pro Port 40). In der dargestellten Ausführungsform ist es der Software-Betrieb, der überwacht und analysiert wird.
  • Nun auf 3 bezugnehmend, befindet sich in einer schematischen Darstellung die Hostmaschine 400 typischerweise an einem Ort, der von den Zielmaschinen 402 entfernt ist. Der Host 400 und das Ziel 402 kommunizieren über Modems 404, 406 und eine Kommunikationsverbindung 408. Die Hostmaschine enthält ein Quellenebenen-Fehlersuchprogramm 410, das Zugriff auf einen Speicher 412 hat, der Quelldateien 414 und die kompilierte Symboltabelle 416 und die binäre ausführbare Datei 418 für ein Programm enthält, das in der Zielmaschine ausgeführt wird. Typischerweise enthält der Speicher 412 viele solche Ansammlungen von Dateien für unterschiedliche Versionen von Programmen, die auf unterschiedlichen Zielmaschinen ausgeführt werden. Die binären Dateien sind mit den binären ausführbaren Programmdateien auf der Zielmaschine identisch.
  • Das Quellenebenen-Fehlersuchprogramm, das die Symboltabelle 416 verwendet, identifiziert unter der Kontrolle entweder des Benutzers oder eines automatischen Ablaufverfolgungspunkt- Programms die Adressen, an denen Ablaufverfolgungspunkte in das ausführbare Programm eingesetzt werden sollen, das auf der Zielmaschine läuft, ebenso wie die Adressen für die Variablen (oder numerischen Ausdrücke, um solche Adressen zu bestimmen). Diese Daten werden über die Kommunikationsverbindung 408 zur Zielmaschine gesendet. Auf der Zielmaschine verwendet das Stumpf-Programm diese Daten und setzt Fangstellen an den Ablaufverfolgungspunktadressen ein, die bewirken, daß an jedem Ablaufverfolgungspunkt die notwendigen Daten gesammelt und in einem Ablaufverfolgungspuffer 420 gespeichert werden. Das Stumpf-Programm 422 ist in der Zielmaschine als Teil ihrer Betriebsprogramme enthalten. So wird im allgemeinen Betrieb ein Programm kompiliert und verknüpft und in binär ausführbarer Form in die Zielmaschine geladen, während es in binären Dateien 418 und Symboldateien 416 gespeichert ist. Ein Benutzer oder das System definiert dann die Ablaufverfolgungspunkte und die Daten, die gesammelt werden sollen, und sendet diese Einstellungsinformation an die Zielmaschine. Die passenden Daten werden dann jedesmal gesammelt, wenn ein Ablaufverfolgungspunkt getroffen wird, und das Ablaufverfolgungsprogramm wird beendet, wie im folgenden beschrieben. Es wird dann eine „Absturz"-Analyse an allen oder einem Teil der Daten durchgeführt, die im Ablaufverfolgungspuffer gesammelt sind.
  • Nun auf 4 bezugnehmend, wird im Betrieb ein Quellenebenen-Fehlerbeseitigungsprogramm auf dem Hostcomputer eingeleitet, der typischerweise vom Ort der Zielmaschine entfernt ist. Dies wird bei 98 angegeben. Das Fehlerbeseitigungsprogramm öffnet unter Benutzerkontrolle ein Quellcode-Fenster auf dem Hostcomputer, das heißt, ein Fenster auf einem Anzeigebildschirm, durch das eine Fehlersuchinformation erzeugt wird. Dies wird bei Schritt 100 angegeben. Der Benutzer identifiziert dann ein Programm, das auf der Zielmaschine ausgeführt wird, hier das Kontrollersystem 14, und das Fehlersuchprogramm verifiziert, daß es dieselbe Version des Programms aufweist, wie jenes, das auf der Zielmaschine ausgeführt wird. Dies wird bei 101 angegeben. Der Benutzer setzt entweder automatisch oder manuell eine Reihe von Ablaufverfolgungspunkten im Programm, in dem Fehler beseitigt werden sollen. Dies wird bei Schritt 102 angegeben. Das manuelle Setzen der Ablaufverfolgungspunkte wird typischerweise auf der Quellcodeebene im Programm durchgeführt. Zusammen mit jedem Ablaufverfolgungspunkt identifiziert der Benutzer entweder manuell oder automatisch die Variablen, für die Daten gesammelt werden, jedesmal, wenn der Ablaufverfolgungspunkt erreicht oder „getroffen" wird. Wenn die Ablaufverfolgungspunkte automatisch gesetzt werden, kann ein Verfahren eingesetzt werden, wie jenes, das in der mitanhängigen US-Patentanmeldung Nr. 09/069,608, eingereicht am 29. April 1998, mit dem Titel „Source code debugging tool application" beschrieben wird. Sobald die Fehlerbeseitungseinstellung durch den Benutzer beendet worden ist, sendet der Host an die Zielmaschine die Stelle der Ablaufverfolgungspunkte im ausführbaren Code, der auf der Zielmaschine vorhanden ist. Das Format der übertragenen Daten läßt es zu, daß numerische Ausdrücke gesendet werden, aus der die Stelle der gewünschten Variablen auf der Zielmaschine abgeleitet werden kann. Dies wird bei 103 angegeben. Typischerweise werden die Adressen und Ausdrücke aus den Variablen abgeleitet, die in der Symboltabelle gefunden werden, die für gewöhnlich durch den Compiler bei der Erzeugung des ausführbaren Codes der Programmtabelle erzeugt und gespeichert wird. Die Symboltabelle steht auf der Hostmaschine zur Verfügung. Diese Adressen- und Ausdrucksinformation wird bei 104 an die Zielmaschine (als Fehlerbeseitigungs-Einstelldaten) übertragen, zur Verwendung im Betrieb durch das Stumpf-Programm dort. Das Ziel- und das Hostsystem können zum Beispiel über das Internet, durch ein Modem oder einen Hochgeschwindigkeits-Kommunikationsbus verbunden sein. Auf der Zielmaschine arbeitet der sogenannte „Stumpf", um die Fehlerbeseitigungs-Einstelldaten bei 105 zu implementieren, und sammelt die relevanten Daten während der Operation der Software, in der Fehler beseitigt werden sollen. Diesbezüglich setzt das Stumpf-Programm Fangstellen an den Ablaufverfolgungspunktadressen ein, die durch das Hostsystem identifiziert werden, und sammelt die erforderlichen Daten, jedesmal wenn eine „Fangstelle" erreicht oder getroffen wird.
  • Wenn das Programm, in dem auf der Zielmaschine Fehler beseitigt werden sollen, fortschreitet, arbeitet der Stumpf an jeder Ablaufverfolgungspunktadresse, um den Code einzufangen und die erforderlichen Daten zu sammeln. Dies wird bei 110 angegeben. Wenn der Ablaufverfolgungspunkt angetroffen worden ist, arbeitet der Stumpf, um die Daten vom Ziel zu erfassen, indem die Ausdrücke ausgewertet werden, die durch den Host geliefert werden (die physikalische Adresse der Variable kann sich von Zeit zu Zeit ändern), und die erfaßten Daten in einem Zielpuffer zu speichern. Dies wird bei 112 angegeben. Wenn sich der Zielpuffer füllt, wird in dieser dargestellten Ausführungsform der Erfindung der Puffer zyklisch durchlaufen, so daß alte und früher gesammelte Daten überschrieben werden.
  • Der Stumpf arbeitet folglich, um die Variablendaten zu sammeln, die in Fehlerbeseitigungseinstellung spezifiziert sind, obwohl er auf dem numerischen oder Ausdrucksniveau spezifiziert ist. Das heißt, der Stumpf weist einen Ausdrucksauswerter auf, der im Format der bevorzugten Ausführungsform der Erfindung in umgekehrter polnischer Schreibweise arbeitet, was es dem Stumpf ermöglicht, die Adresse der Variable, oder der Variablen, die gesammelt werden sollen, zu bestimmen, obwohl sich die Adresse der Variablen im Programm von Zeit zu Zeit ändern kann.
  • Sobald alle Programmvariablen gesammelt worden sind, ein Durchlaufzählwert für einen Ablaufverfolgungspunkt erreicht worden ist, oder eine Zeit, die durch das Host- oder Zielsystem spezifiziert wird, verstrichen ist, oder wenn ein benutzererzeugtes Zugangskommando durch das Zielsystem empfangen wird, können die gesammelten und gespeicherten Daten als ganzes oder teilweise abgeladen werden, wie durch die Hostmaschine spezifiziert, ohne den Betrieb der Zielmaschine oder des überwachten Programms wesentlich zu unterbrechen, das heißt, während die Zielmaschine weiter arbeitet. In einem besonderen Aspekt wird, wenn der Durchlaufzählwert für einen Ablaufverfolgungspunkt erreicht wird, die Sammlung der Daten automatisch stoppen und die Daten werden dem Host zur Verfügung gestellt, entweder automatisch oder unter Benutzerkontrolle am Host. Zum Beispiel werden für einen Durchlaufzählwert von eins Daten gesammelt, wenn ein bestimmter Ablaufverfolgungspunkt zum ersten Mal erreicht wird, und können dem Host sofort zur Überprüfung und Analyse zur Verfügung gestellt werden. Es sollte auch klar sein, daß die gesammelten Daten zum Host zurückgeschickt werden können, während zusätzliche Daten gesammelt werden. Dies wird bei Schritt 120 angegeben. Der Abladeprozeß kann durch den Host implementiert und gesteuert werden, wie bei Schritt 130 angegeben. In einer besonderen Ausführungsform sendet der Host eine Suchanforderung an das Ziel, um ein begrenztes, wohldefiniertes Datenherunterladen zu erhalten.
  • Es ist wichtig zu beachten, daß jedesmal, wenn ein Ablaufverfolgungspunkt erreicht wird, das Programm eingefangen wird und die passenden Variablen gesammelt und gespeichert werden. Dies braucht zum Beispiel etwa eine Millisekunde. Dies ist eine bedeutende Verbesserung gegenüber zum Beispiel jenen Systemen, die beim Antreffen eines Unterbrechungspunkts das Programm, das überwacht wird, veranlassen zu stoppen, wobei es auf eine Benutzereingabe wartet, was Unterbrechungen von einer, zehn oder mehr Minuten benötigt. Als Ergebnis ähnelt der Betrieb der Zielmaschine sehr viel mehr jenem der Maschine ohne die Ablaufverfolgungspunkte, die implementiert sind. Natürlich muß die Version der Software in der Zielmaschine identisch mit jener sein, die dem Hostcomputer bekannt ist.

Claims (18)

  1. Verfahren zur Fehlerbeseitigung in Software, die in einer Zielmaschine ausgeführt wird, das aufweist: Definieren von Ablaufverfolgungspunktstellen und Variablen in einer Hostmaschine, die während der Operation der Software (102, 103) erfaßt werden sollen, Ausführen eines Stumpf-Programms in der Zielmaschine, Senden von Informationen über die Ablaufverfolgungspunktstellen und Variablen an das Stumpf-Programm auf der Zielmaschine (104), Sammeln unter Verwendung des Stumpf-Programms von Daten, die die Variablen repräsentieren, die durch die Hostmaschine definiert werden, wenn ein Ablaufverfolgungspunkt erreicht wird (112), und Senden der gesammelten Daten online an die Hostmaschine, ohne den Betrieb der Zielmaschine (130) zu stoppen.
  2. Verfahren nach Anspruch 1, das ferner aufweist: Bestimmen unter Verwendung des Stumpf-Programms auf der Zielmaschine einer Stelle für jede Variable, für die Daten gesammelt werden sollen, für jeden Ablaufverfolgungspunkt.
  3. Verfahren nach Anspruch 2, das ferner die Verwendung des Stumpf-Programms auf der Zielmaschine zur Lieferung der gesammelten Daten an einen Speicherpuffer aufweist.
  4. Verfahren nach Anspruch 1, das ferner aufweist: automatisches Auswählen der Ablaufverfolgungspunkte auf der Hostmaschine, und automatisches Identifizieren der Variablen auf der Hostmaschine.
  5. Verfahren nach Anspruch 1, das ferner aufweist: Bewirken von Fangstellen im Software-Code auf der Zielmaschine an den Ablaufverfolgungspunkten.
  6. Verfahren nach Anspruch 1, das ferner aufweist: Sammeln von Daten auf der Zielmaschine bis zu einer Stoppzeit, die durch eine der Ziel- und Hostmaschinen festgelegt wird.
  7. Verfahren nach Anspruch 1, das ferner aufweist: Beendigen des Sammelns der Daten, wenn ein Ablaufverfolgungspunkt eine vorbestimmte Anzahl von Malen angetroffen wird.
  8. Verfahren nach Anspruch 6, das ferner aufweist: Speichern der gesammelten Daten in einem Zielmaschinenpuffer, und zyklisches Durchlaufen des Puffers, wenn der Zielmaschinenpuffer gefüllt ist.
  9. Verfahren nach Anspruch 1, wobei die Zielmaschine einen Plattenlaufwerkskontroller aufweist.
  10. Vorrichtung zur Fehlerbeseitigung in Software, die in einer Zielmaschine ausgeführt wird, die aufweist: eine Einrichtung zur Definition von Ablaufverfolgungspunktstellen und Variablen in einer Hostmaschine, die während der Operation der Software erfaßt werden sollen, eine Einrichtung zum Ausführen eines Stumpf-Programms in der Zielmaschine, eine Einrichtung zum Senden von Informationen über die Ablaufverfolgungspunktstellen und Variablen an das Stumpf-Programm auf der Zielmaschine, eine Einrichtung zum Sammeln unter Verwendung des Stumpf-Programms von Daten, die die Variablen repräsentieren, die durch die Hostmaschine definiert werden, wenn ein Ablaufverfolgungspunkt einbezogen wird, und eine Einrichtung zum Senden der gesammelten Daten online zur Hostmaschine, ohne den Betrieb der Zielmaschine zu stoppen.
  11. Vorrichtung nach Anspruch 10, die ferner aufweist: eine Einrichtung zum Bestimmen unter Verwendung des Stumpf-Programms auf der Zielmaschine einer Stelle für jede Variable, für die Daten gesammelt werden sollen, für jeden Ablaufverfolgungspunkt.
  12. Vorrichtung nach Anspruch 10, die ferner aufweist: eine Einrichtung zum automatischen Auswählen der Ablaufverfolgungspunkte auf der Hostmaschine, und eine Einrichtung zum automatischen Identifizieren der Variablen auf der Hostmaschine.
  13. Vorrichtung nach Anspruch 10, die ferner aufweist: eine Einrichtung zum Bewirken von Fangstellen im Software-Code auf der Zielmaschine an den Ablaufverfolgungspunkten.
  14. Vorrichtung nach Anspruch 10, die ferner aufweist: eine Einrichtung zum Sammeln von Daten an der Zielmaschine, bis zu einer Stoppzeit, die durch eine der Ziel- und Hostmaschinen festgelegt wird.
  15. Vorrichtung nach Anspruch 14, die ferner aufweist: einen Zielmaschinenpuffer, eine Einrichtung zum Speichern der gesammelten Daten in einem Zielmaschinenpuffer, und eine Einrichtung zum zyklischen Durchlaufen des Puffers, wenn der Zielmaschinenpuffer gefüllt ist.
  16. Vorrichtung nach Anspruch 10, wobei die Vorrichtung computerimplementiert ist und Software-Programme aufweist, die auf computerlesbaren Medien gespeichert sind.
  17. Vorrichtung nach Anspruch 10, die ferner eine Einrichtung zum Liefern der gesammelten Daten unter Verwendung des Stumpf-Programms an einen Speicherpuffer aufweist.
  18. Vorrichtung nach Anspruch 10, die ferner eine Einrichtung zum Beenden der Sammlung von Daten aufweist, wenn ein Ablaufverfolgungspunkt eine vorbestimmte Anzahl von Malen angetroffen wird.
DE69919404T 1999-01-04 1999-12-30 On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren Expired - Lifetime DE69919404T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US224921 1999-01-04
US09/224,921 US6311326B1 (en) 1999-01-04 1999-01-04 Online debugging and tracing system and method
PCT/US1999/031208 WO2000041078A1 (en) 1999-01-04 1999-12-30 Online debugging and tracing system and method

Publications (2)

Publication Number Publication Date
DE69919404D1 DE69919404D1 (de) 2004-09-16
DE69919404T2 true DE69919404T2 (de) 2005-08-04

Family

ID=22842781

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69919404T Expired - Lifetime DE69919404T2 (de) 1999-01-04 1999-12-30 On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren

Country Status (6)

Country Link
US (1) US6311326B1 (de)
EP (1) EP1145125B1 (de)
JP (2) JP2002534736A (de)
AT (1) ATE273535T1 (de)
DE (1) DE69919404T2 (de)
WO (1) WO2000041078A1 (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754891B1 (en) * 1998-08-31 2004-06-22 Red Hat, Inc. Debugger system using tracepoints for computer software
US6606671B1 (en) * 1999-04-19 2003-08-12 Unisys Corporation Method for analyzing input/output operations of a data processing system
US6490690B1 (en) * 1999-07-22 2002-12-03 International Business Machines Corporation Method and apparatus for unix system catastrophic recovery aid
GB0009945D0 (en) * 2000-04-20 2000-06-07 Sgs Thomson Microelectronics Debugging device nad method
US6948095B2 (en) * 2000-04-20 2005-09-20 Stmicroelectronics Limited Methods and apparatus for dynamically loading a file on a target computer system
GB0009939D0 (en) * 2000-04-20 2000-06-07 Sgs Thomson Microelectronics Input/output in embedded systems
GB0009941D0 (en) * 2000-04-20 2000-06-07 Sgs Thomson Microelectronics Computer system
GB0009943D0 (en) * 2000-04-20 2000-06-07 Sgs Thomson Microelectronics Operating a computer system
US6978444B1 (en) * 2000-08-01 2005-12-20 International Business Machines Corporation Computer-implemented method and system for automatically invoking a predetermined debugger command at a desired location of a single thread of a program
US6817014B2 (en) * 2001-04-11 2004-11-09 Hewlett-Packard Development Company, L.P. Analysis of executable program code using compiler-generated function entry points and endpoints with other sources of function entry points and endpoints
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US7134116B1 (en) * 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7181728B1 (en) * 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
CA2347647A1 (en) * 2001-05-15 2002-11-15 Ibm Canada Limited-Ibm Canada Limitee Storing and restoring snapshots of a computer process
US7376937B1 (en) * 2001-05-31 2008-05-20 Oracle International Corporation Method and mechanism for using a meta-language to define and analyze traces
US7380239B1 (en) 2001-05-31 2008-05-27 Oracle International Corporation Method and mechanism for diagnosing computer applications using traces
US6912708B2 (en) 2001-06-28 2005-06-28 Sun Microsystems, Inc. Method and apparatus to facilitate debugging a platform-independent virtual machine
US8473922B2 (en) * 2001-09-19 2013-06-25 Hewlett-Packard Development Company, L.P. Runtime monitoring in component-based systems
US7143394B1 (en) * 2001-12-21 2006-11-28 Emc Corporation Analyzing software behavior
US6941492B1 (en) 2002-02-05 2005-09-06 Emc Corporation Debugging tool for efficient switching between targets in a multi-processor environment
US7134115B2 (en) * 2002-02-07 2006-11-07 Matsushita Electric Industrial Co., Ltd. Apparatus, method, and program for breakpoint setting
CA2383832A1 (en) * 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee System and method for intelligent trap analysis
US7512954B2 (en) * 2002-07-29 2009-03-31 Oracle International Corporation Method and mechanism for debugging a series of related events within a computer system
US7200588B1 (en) 2002-07-29 2007-04-03 Oracle International Corporation Method and mechanism for analyzing trace data using a database management system
US7165190B1 (en) 2002-07-29 2007-01-16 Oracle International Corporation Method and mechanism for managing traces within a computer system
CA2408457A1 (en) 2002-10-17 2004-04-17 Ibm Canada Limited-Ibm Canada Limitee Collection and detection of differences of values of expressions/variables when debugging a computer process
US20040111706A1 (en) * 2002-12-07 2004-06-10 Mogul Jeffrey Clifford Analysis of latencies in a multi-node system
US20050039169A1 (en) * 2003-08-14 2005-02-17 Yu-Cheng Hsu Integrated source code debugging apparatus method and system
JP2005301640A (ja) * 2004-04-12 2005-10-27 Hitachi Ltd スイッチ装置、記憶制御システム及びトレースデータ取得方法
US8640114B2 (en) * 2006-09-07 2014-01-28 Oracle America, Inc. Method and apparatus for specification and application of a user-specified filter in a data space profiler
US8185868B1 (en) 2004-12-20 2012-05-22 The Mathworks, Inc. System and method for cell-based code editing and publishing
US7817293B2 (en) * 2005-01-07 2010-10-19 Infoprint Solutions Company, Llc Trace and debug tool for high speed printer systems
US8266608B2 (en) * 2005-02-18 2012-09-11 Green Hills Software, Inc. Post-compile instrumentation of object code for generating execution trace data
US9152531B2 (en) * 2005-02-18 2015-10-06 Green Hills Sofware, Inc. Post-compile instrumentation of object code for generating execution trace data
US20070006166A1 (en) * 2005-06-20 2007-01-04 Seagate Technology Llc Code coverage for an embedded processor system
US8813055B2 (en) * 2006-11-08 2014-08-19 Oracle America, Inc. Method and apparatus for associating user-specified data with events in a data space profiler
US8762956B1 (en) * 2007-01-31 2014-06-24 The Mathworks, Inc. Generating a report document from code
US8762951B1 (en) 2007-03-21 2014-06-24 Oracle America, Inc. Apparatus and method for profiling system events in a fine grain multi-threaded multi-core processor
US20090254888A1 (en) * 2008-04-07 2009-10-08 International Business Machines Corporation Debug tours for software debugging
JP5252014B2 (ja) * 2011-03-15 2013-07-31 オムロン株式会社 制御装置、制御システム、ツール装置および収集指示プログラム
CN103778044B (zh) * 2012-10-23 2017-05-17 伊姆西公司 用于系统故障诊断和修复的方法和装置
US9317317B2 (en) 2013-06-12 2016-04-19 International Business Machines Corporation Implementing concurrent device driver maintenance and recovery for an SRIOV adapter in a virtualized system
US9111046B2 (en) 2013-06-12 2015-08-18 International Business Machines Corporation Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system
US9720775B2 (en) 2013-06-12 2017-08-01 International Business Machines Corporation Implementing concurrent adapter firmware update for an SRIOV adapter in a virtualized system
US9323620B2 (en) 2013-06-12 2016-04-26 International Business Machines Corporation Implementing shared adapter configuration updates concurrent with maintenance actions in a virtualized system
US9304849B2 (en) 2013-06-12 2016-04-05 International Business Machines Corporation Implementing enhanced error handling of a shared adapter in a virtualized system
US9400704B2 (en) 2013-06-12 2016-07-26 Globalfoundries Inc. Implementing distributed debug data collection and analysis for a shared adapter in a virtualized system
US8990784B2 (en) 2013-06-28 2015-03-24 International Business Machines Corporation Determining control flow divergence due to variable value difference
US9477579B2 (en) * 2013-08-09 2016-10-25 Freescale Semiconductor, Inc. Embedded software debug system with partial hardware acceleration
US9547581B2 (en) 2013-10-01 2017-01-17 Wipro Limited Systems and methods for fixing software defects in a binary or executable file
TWI615708B (zh) * 2017-03-17 2018-02-21 致伸科技股份有限公司 嵌入式裝置除錯系統及其方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127103A (en) * 1987-10-14 1992-06-30 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
US5175856A (en) * 1990-06-11 1992-12-29 Supercomputer Systems Limited Partnership Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution
JPH0520122A (ja) * 1991-07-12 1993-01-29 Nippon Telegr & Teleph Corp <Ntt> リモートデバツグ方法
JPH0540658A (ja) * 1991-08-06 1993-02-19 Shikoku Nippon Denki Software Kk 磁気デイスク制御装置
US5450586A (en) * 1991-08-14 1995-09-12 Hewlett-Packard Company System for analyzing and debugging embedded software through dynamic and interactive use of code markers
JPH05241891A (ja) * 1992-02-26 1993-09-21 Nec Corp トレーサ回路
EP0596591B1 (de) * 1992-10-09 1998-04-15 Sun Microsystems, Inc. Verfahren und Anlage zur Realzeitdatensammlung und Anzeigevorrichtung
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
JPH09259004A (ja) * 1996-03-27 1997-10-03 Nippon Denki Ido Tsushin Kk デバッグ方法
JPH1011321A (ja) * 1996-06-25 1998-01-16 Saitama Nippon Denki Kk 実行トレース機能付きマイクロプロセッサ
US5832205A (en) * 1996-08-20 1998-11-03 Transmeta Corporation Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
JP3260083B2 (ja) * 1996-09-03 2002-02-25 株式会社東芝 デバッグシステム及びデバッグ方法
JPH10283222A (ja) * 1997-04-03 1998-10-23 Mitsubishi Electric Corp エミュレータ方法
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US6161216A (en) * 1998-04-29 2000-12-12 Emc Corporation Source code debugging tool

Also Published As

Publication number Publication date
JP2002534736A (ja) 2002-10-15
ATE273535T1 (de) 2004-08-15
DE69919404D1 (de) 2004-09-16
EP1145125B1 (de) 2004-08-11
JP2006344249A (ja) 2006-12-21
WO2000041078A1 (en) 2000-07-13
US6311326B1 (en) 2001-10-30
EP1145125A1 (de) 2001-10-17

Similar Documents

Publication Publication Date Title
DE69919404T2 (de) On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren
DE2953432C1 (de) Vorrichtung zum Testen eines Mikroprogramms
DE69932371T2 (de) Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms
DE69831732T2 (de) Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem
DE4011745C2 (de)
DE4332993C1 (de) Tracer-System zur Fehleranalyse in laufenden Realzeitsystemen
DE69720821T2 (de) Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle
DE69919632T2 (de) Fehlertoleranz durch N-modulare Softwareredundanz unter Verwendung von indirekter Instrumentierung
DE4313594A1 (de) Mikroprozessor
DE69908682T2 (de) Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
DE69815006T2 (de) Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten
EP2962205B1 (de) Mehrkern-prozessorsystem mit fehleranalysefunktion
EP1565825A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
EP0048991A1 (de) Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
EP1716490A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen für sicherheitskritische rechnersysteme in kraftfahrzeugen
DE60021092T2 (de) Vorrichtung und Verfahren zur Echtzeitfehlerbeseitigung von Quellprogrammen, insbesondere für DSP
DE102019132679A1 (de) Überwachungsverfahren für cpu-nutzungsmenge im betrieb von fahrzeug-ecu und überwachungseinheit
DE112018001444T5 (de) Verbesserte E/A-Fehlerdiagnose
DE102004046288A1 (de) Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
EP2567295B1 (de) Verfahren zum selektiven aufzeichnen, rekonstruieren und analysieren des programmlaufs eines steuerungsprogramms
DE19546173C2 (de) Verfahren zum Testen einer Bedieneroberfläche in computergesteuerten Systemen
EP2634700A1 (de) Verfahren und Entwicklungsumgebung zur Überwachung eines ablaufenden Programms
DE102005032558B4 (de) Verfahren zum Betrieb eines Mikrocontrollers in einer Testumgebung und elektronische Testeinheit zur Analyse von Programm-Codes
EP2386952A1 (de) Verfahren und Entwicklungsumgebung zur Überwachung eines ablaufenden Programms

Legal Events

Date Code Title Description
8364 No opposition during term of opposition