DE69814750T2 - Logikanalysator zur Erkennung der Übereinstimmung einer Abtastungsprobe mit einem Quellcodebefehl - Google Patents

Logikanalysator zur Erkennung der Übereinstimmung einer Abtastungsprobe mit einem Quellcodebefehl Download PDF

Info

Publication number
DE69814750T2
DE69814750T2 DE69814750T DE69814750T DE69814750T2 DE 69814750 T2 DE69814750 T2 DE 69814750T2 DE 69814750 T DE69814750 T DE 69814750T DE 69814750 T DE69814750 T DE 69814750T DE 69814750 T2 DE69814750 T2 DE 69814750T2
Authority
DE
Germany
Prior art keywords
source code
logic analyzer
data
analyzer according
search
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
DE69814750T
Other languages
English (en)
Other versions
DE69814750D1 (de
Inventor
Robert J. Aloha Heath
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.)
Tektronix Inc
Original Assignee
Tektronix 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 Tektronix Inc filed Critical Tektronix Inc
Publication of DE69814750D1 publication Critical patent/DE69814750D1/de
Application granted granted Critical
Publication of DE69814750T2 publication Critical patent/DE69814750T2/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/3664Environments for testing or debugging software

Description

  • Hintergrund der Erfindung
  • Diese Erfindung betrifft Test- und Meßsysteme und insbesondere ein System zum Bestimmen eines Erfassungsabtastwerts, der durch ein Instrument erhalten wird und der einer Software-Quellencodeanweisung entspricht.
  • In früheren Tagen schrieben Ingenieure typischerweise einen Steuercode für Test- und Meßsysteme in der Assemblersprache, einer Sprache niedriger Ebene. Um die Entwicklungszeit zu verbessern und um zu ermöglichen, daß eine größere Funktionalität und Komplexität in kürzerer Zeit entwickelt werden, verwenden Ingenieure heute jedoch typischerweise problemorientierte Sprachen, beispielsweise C, C++ usw., um Produkte zu entwickeln. Die problemorientierte Sprache wird zum Betrieb auf dem speziellen Prozessor durch ein Kompilieren/Assembler/Binder-System, das eine Assemblersprache und/oder einen Maschinencode auf der Basis des Quellencodes hoher Ebene erzeugt, in einen Maschinencode umgewandelt. Beim Austesten muß der Ingenieur mit dem Maschinencode niedriger Ebene arbeiten, der typischerweise durch das Diagnoseprogramm in die Assemblersprache umgewandelt wird, um dessen Verständnis zu unterstützen. Da jedoch der Ingenieur die Software nicht in der Assemblersprache geschrieben hat und da der Ingenieur mit den Verfahren, die vom Kompilieren verwendet werden, um einen Assemblersprachcode entsprechend verschiedenen Quellencodeanweisungen zu erzeugen, nicht vertraut sein kann, wird es für den Ingenieur kompliziert, den exakten Betrieb des Systems während des Austestens zu verstehen.
  • Gemäß dem Stand der Technik ist es erforderlich, daß ein Benutzer einen Erfassungsabtastwert auswählt und dann versucht, eine entsprechende Quellencodeanweisung aufzufinden. Solche früheren Systeme ermöglichen auch das Suchen nach einem Erfassungsabtastwert, der der nächsten oder vorherigen Quellencodeanweisung in der Ausführungsreihenfolge entspricht. Im Stand der Technik gibt es jedoch keine Systeme, die die willkürliche Auswahl einer Quellencodeanweisung aus irgendeiner der Quellencodedateien, die zum Erzeugen des ausführbaren Codes verwendet werden und die dann einen entsprechenden Abtastwerf in einer Erfassungspuffer/Disassemblier-Datei auffinden, ermöglichen.
  • Derzeitige Testinstrumente, beispielsweise Logikanalysatoren, sind hochwertige Vorrichtungen, die umfangreiche Softwareunterstützungssysteme zum Steuern des Betriebs der Instrumente umfassen. Einige dieser Unterstützungssysteme umfassen Diagnosesysteme, die einem Ingenieur, der ein Testinstrument verwendet, ermöglichen, Echtzeitcharakterisieren und -austesten eines eingebetteten Systems durchzuführen, wobei erfaßte Daten (im Fall eines Mikroprozessorsystems) Bustransaktionen und dergleichen umfassen, die während des Betriebs des Systems stattfinden.
  • Gemäß dem Stand der Technik wurden Diagnosesysteme verwendet, bei denen der Ingenieur, der ein System austestet, Zeile für Zeile Erfassungsabtastwerte verfolgen müßte. Wenn der Ingenieur beispielsweise an einem speziellen Datenabtastwert interessiert wäre, der vom System erfaßt worden war, und der entsprechende Quellencode in einem Diagnosefenster an einem Arbeitsplatzrechner angezeigt werden würde, könnte der Ingenieur nicht wissen, welche Quellencodeanweisung dem speziellen Datenabtastwert entspricht, da sich die Datenabtastwerte typischerweise aus irgendeinem von vielen verschiedenen Modulen in Abhängigkeit von den Betriebseigenschaften und dem Ablauf der Steuersoftware ergeben haben könnten. Wenn der Ingenieur eine spezielle Quellencodezeile mit dem Diagnoseprogramm betrachtet, müßte der Ingenieur folglich eine gewisse Art geschulter Vermutung hinsichtlich dessen, wo ein entsprechender Datenabtastwert im Erfassungspuffer erfaßt worden sein könnte, durchführen und eine Anzahl von Abtastwerten verfolgen, mit der Hoffnung, daß die Vermutung korrekt war und daß die Bedingungen der Quellenanweisungen zweckmäßig erfüllt wurden, so daß der erwünschte Abtastwert tatsächlich im Erfassungspuffer erschien. Dies könnte das Durchschreiten mehrerer Abtastwerte im Erfassungspuffer beinhalten, was für den Ingenieur lästig wäre, da der spezielle Erfassungsabtastwert häufig im Diagnoseprogramm nicht erreicht werden könnte, ohne sehr viele Erfassungsabtastwerte zu durchschreiten, ohne Garantie, daß der gesuchte Abtastwert überhaupt im Erfassungspuffer vorhanden ist.
  • EP-A-0 261 247 betrifft einen Emulator, der einen Korrelator verwendet, um relative Positionen in einer Quellencodeauflistung und einer Objektcodeauflistung zu verfolgen, wenn das Emulationsprogramm abläuft.
  • Zusammenfassung der Erfindung
  • Gemäß der Erfindung wird ein System zum Identifizieren eines Erfassungsabtastwerts entsprechend einer Quellencodeanweisung bereitgestellt, wobei Daten hoher Ebene (Quellencode) mit Erfassungsdaten niedriger Ebene verknüpft werden. Vorzugsweise bewegen sich Cursor in den Daten hoher Ebene und niedriger Ebene zu entsprechenden Stellen, wenn der Cursor in der anderen Ansicht bewegt wird.
  • Es ist erwünscht, ein verbessertes System zum Austesten bereitzustellen.
  • Es ist auch erwünscht, ein verbessertes System zum Korrelieren von Cursors zwischen zwei Datensätzen bereitzustellen.
  • Es ist auch erwünscht, ein verbessertes System zum Austesten bereitzustellen, wobei ein Cursor in Daten niedriger Ebene zu einer entsprechenden Anweisung bewegt wird, wenn ein Cursor in Daten hoher Ebene bewegt wird.
  • Auf den Gegenstand der vorliegenden Erfindung wird besonders hingewiesen und er wird in Anspruch 1 deutlich beansprucht. Sowohl die Organisation als auch das Verfahren des Betriebs zusammen mit weiteren Vorteilen und Aufgaben derselben können jedoch am besten durch Bezugnahme auf die folgende Beschreibung in Verbindung mit zugehörigen Zeichnungen verstanden werden, in denen sich gleiche Bezugszeichen auf gleiche Elemente beziehen.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, wobei das System zur Verwendung mit einer Quellencode-Ansichtsvorrichtung, einem Diagnoseprogramm oder dergleichen ausgelegt ist;
  • 2 ist ein Ablaufplan, der Ausführungsschritte bei der Durchführung eines Ausführungsbeispiels der Erfindung darstellt, wenn eine Objektcodedatei geöffnet wird;
  • 3 ist ein Ablaufplan der Ausführungsschritte bei der Durchführung der Suchaspekte eines Ausführungsbeispiels der vorliegenden Erfindung;
  • 4 ist ein Blockdiagramm einer typischen Anordnung, die bei der Verwendung der vorliegenden Erfindung verwendet wird;
  • 5 ist eine Ansicht einer alternativen Betriebsumgebung, die die vorliegende Erfindung verwendet;
  • 6 ist eine Ansicht von Abtastwerterfassungsfenstern, die einen Quellencode hoher Ebene und eine Assemblercodeinformation entsprechend erfaßten Daten darstellt; und
  • 7 ist ein alternatives Ausführungsbeispiel der typischen Anordnung von 4, wobei das Instrument und der Arbeitsplatzrechner dieselbe Einheit sind.
  • Ausführliche Beschreibung
  • Das System gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung umfaßt eine Ansichtsvorrichtung für Quellencodedaten hoher Ebene, die mit einer Ansichtsvorrichtung für Erfassungsdaten niedriger Ebene verknüpft ist, wobei die Bewegung eines Cursors und die Ausgabe eines Suchbefehls in einer Datenansichtsvorrichtung zu einer entsprechenden Bewegung des Cursors in der anderen Datenansichtsvorrichtung führt, um eine entsprechende Stelle anzugeben, wenn eine solche Stelle gefunden wird. Daten hoher Ebene, wie hierin verwendet, umfassen geeigneterweise beispielsweise einen Quellencode, während Daten niedriger Ebene erfaßte Daten, einen Objektcode, einen Assemblercode usw. umfassen können.
  • Mit Bezug auf 1, ein Blockdiagramm, das die Struktur eines Systems 10 darstellt, das die vorliegende Erfindung verwendet, sind eine Ansichtsvorrichtung niedriger Ebene, die eine Assemblersprach-Ansichtsvorrichtung 12 umfassen kann (und die durch Disassemblieren eines Objektcodes arbeiten kann), und eine Ansichtsvorrichtung für Daten hoher Ebene, die eine Quellencode-Ansichtsvorrichtung 14 oder alternativ ein Diagnoseprogramm umfassen kann, durch einen Datenübertragungskanal 16 verbunden. Der Datenübertragungskanal 16 leitet die relativen Cursorbefehle zwischen den Ansichtsvorrichtungen hoher Ebene und niedriger Ebene, um die andere Ansichtsvorrichtung (oder das Diagnoseprogramm) anzuweisen, ihren Cursor in eine geeignete Position zu bewegen. Ein Computer, Arbeitsplatzrechner oder dergleichen betreibt die Ansichtsvorrichtungen und die anderen Prozesse des Ausführungsbeispiels.
  • Bei der Verwendung verwendet das System eine Diagnoseinformation, die beispielsweise von einem Kompilieren geliefert wird, wobei die Diagnoseinformation typischerweise in der vom Kompilieren erzeugten Objektdatei gespeichert wird. Diese Diagnoseinformation würde einen Quellencodedateinahmen, Zeilen- und manchmal Spaltendaten umfassen, die Anweisungen in der Objektdatei entsprechen. Gemäß dem vorliegenden Ausführungsbeispiel wird, wenn eine Quellendatei geöffnet wird, eine entsprechende Objektdatei geöffnet und gelesen und Korrelationsdaten 15, die beispielsweise eine Nachschlagetabelle umfassen können, werden erzeugt, um die Quellencodeanweisungen auf Adressen abzubilden. Anstatt die Objektdatei zu öffnen, kann alternativ ein separates Programm zuerst die Diagnoseinformation aus der Objektdatei gewinnen und sie in einer separaten Symboldatei speichern, die von der Quellencode-Ansichtsvorrichtung gelesen wird, anstatt die Objektdatei direkt zu lesen.
  • Mit Bezug auf 2, einen Ablaufplan der Ausführungsschritte bei der Durchführung des Ausführungsbeispiels, wenn eine Objekt- oder Symboldatei geöffnet wird, wird in Schritt 20 die Objekt- oder Symboldatei geöffnet, dann werden unter Verwendung der in der Objekt- oder Symboldatei vorhandenen Diagnoseinformation Korrelationsdaten abgeleitet (Schritt 22), um Bereiche von Adressen in der ausführbaren/Objektdatei Quellendateinamen, Zeilennummern und manchmal speziellen Spalten in einer Quellendatei zuzuordnen. In Schritt 24 wird ein anfänglicher Adressenwert aus der Ansichtsvorrichtung für Daten niedriger Ebene erhalten. Unter Verwendung dieser Adresse und der in Schritt 22 konstruierten Korrelationsdaten wird der Name der entsprechenden Quellendatei ermittelt (Schritt 26) und diese Quellendatei wird geöffnet (Schritt 28). Der Inhalt der Quellendatei wird durch die Ansichtsvorrichtung hoher Ebene angezeigt. In Schritt 30 wird die Anzeige der Ansichtsvorrichtung hoher Ebene so eingestellt, daß die spezielle Zeile der durch die Korrelationsdaten angegebenen Quellendatei sichtbar ist und diese Zeile geeignet hervorgehoben wird. Die Korrelationsdaten werden zur Verwendung bei der Auffindung entsprechender Anweisungen in der Ansicht niedriger Ebene beibehalten, wie nachstehend erörtert.
  • Wenn ein Benutzer eine Quellencodeanweisung in einer Quellendatei durch Klicken beispielsweise einer Maustaste, wenn sich der Zeiger auf dieser Quellencodeanweisung befindet, auswählt, wird ein entsprechender Adressenbereich aus den Korrelationsdaten ermittelt. Ein Suchbefehl wird abgeleitet und verwendet, um eine Durchsuche des Datenpuffers niedriger Ebene, beginnend an der Stelle entweder unmittelbar vor oder unmittelbar nach der aktuellen Cursorstelle, nach einem Erfassungsabtastwert mit einem Adressenwert innerhalb des festgelegten Bereichs einzuleiten. Wenn ein solcher Abtastwert gefunden wird, wird das Erfassungspufferfenster in der Ansichtsvorrichtung niedriger Ebene neu angeordnet, um den entsprechenden Abtastwert anzuzeigen, und der Cursor wird an diesem Abtastwert positioniert.
  • Die Regeln für das Suchen in einem bevorzugten Ausführungsbeispiel sind folgendermaßen:
  • Wenn die Quellencodeanweisungs-Position, nach der gesucht werden soll, in der Quellendatei weiter unten liegt als die aktuelle Cursorposition, wird die Suche in einer Vorwärtsrichtung eingeleitet.
  • Wenn die Quellencodeanweisung, nach der gesucht werden soll, früher in der Datei liegt als die aktuelle Cursorposition, dann wird die Suche in einer Rückwärtsrichtung eingeleitet, bis zu einem solchen Zeitpunkt, zu dem die Daten gefunden werden.
  • Ein weiteres Merkmal des Ausführungsbeispiels besteht darin, daß die Suchrichtungen lediglich durch Auswahl beispielsweise einer alternativen Taste auf einer Maus 49 (siehe 4) umgekehrt werden können. Folglich führt die Auswahl einer Quellenanweisung mit der linken Maustaste 51 zu einer Vorwärtssuche, wenn die Quellenanweisung in der Datei weiter unten liegt als die aktuelle Position, und die Auswahleiner Quellenanweisung mit der rechten Maustaste 53 führt zu einer Rückwärtssuche, wenn dieselben Quellencodezeilenpositionen gegeben sind.
  • Die vorstehend angegebenen Regeln und Suchmerkmale werden in einem bevorzugten Ausführungsbeispiel verwendet, aber andere Regeln können gewählt und geeignet verwendet werden.
  • Das System beschränkt den Benutzer nicht auf die Auswahl von Zeilen aus der aktuell angezeigten Quellendatei. Der Benutzer kann wählen, eine beliebige Quellendatei aus einer Liste anzuzeigen, und kann dann eine Quellencodezeile aus dieser Datei auswählen. Die Dateien in der Liste von verfügbaren Quellendateien sind jene, die verwendet wurden, um die vom Benutzer festgelegte Objektdatei zu erzeugen. Typischerweise werden diese Dateinamen aus der Diagnoseinformation in der Objekt- oder Symboldatei bestimmt.
  • Mit Bezug auf 3, die ein Ablaufplan der Schritte zum Auffinden einer Anweisung entsprechend einer Quellenanweisung ist, wird zuerst die neue Cursorposition (die die Quellenanweisung ist, für die entsprechende Daten niedriger Ebene aufgefunden werden sollen) in Schritt 26 erhalten und im Entscheidungsblock 28 wird eine Entscheidung hinsichtlich dessen getroffen, ob die neue Position in der Datei weiter unten liegt als die vorherige Position. Wenn die Position weiter unten liegt, dann wird die Richtung der durchzuführenden weiteren Suche auf eine Vorwärtsrichtung gesetzt (Schritt 30). Wenn nicht, wird die Suchrichtung auf Rückwärts gesetzt (Schritt 32). Als nächstes wird ein Bereich von Adressen, die der ausgewählten Quellencodezeile entsprechen, aus den Korrelationsdaten bestimmt, die früher erzeugt wurden (Schritt 34). Als nächstes wird die Suche im Erfassungspuffer nach dem ersten Auftreten einer entsprechenden Adresse in dem aus den Korrelationsdaten bestimmten Bereich eingeleitet (Schritt 36). Falls gefunden (Entscheidungsblock 38), dann wird der Cursor in der Ansicht von Daten niedriger Ebene bewegt (Schritt 40). Wenn keine entsprechenden Adressenbereiche gefunden werden, bevor das Ende des Erfassungspuffers erreicht wird, dann wird eine Angabe dieser Bedingung durchgeführt (Schritt 42), indem beispielsweise eine Dialogbox diesen Inhalts angezeigt wird.
  • Für eine beliebige ausgewählte Quellencodeanweisung können entweder null Abtastwerte, ein Abtastwert oder mehr als ein entsprechender Abtastwert in einem Erfassungspuffer vorhanden sein, da in einem gegebenen Satz von Erfassungsdaten (die beispielsweise während eines Durchlaufs eines Instruments erhalten wurden) Bedingungen existiert haben können, die dazu führten, daß eine spezielle Quellenanweisung einmal, viele Male oder nullmal ausgeführt wurde. Wie Fachleute erkennen, werden Quellencodeanweisungen nicht notwendigerweise in der Reihenfolge gemäß ihrer Stelle in einer Quellencodedatei ausgeführt, oder, wenn sich die Quellenanweisungen in separaten Dateien befinden, ist die Reihenfolge der Ausführung der verschiedenen Anweisungen etwas unvorhersagbar. Ferner können entsprechende Abtastwerte mehrere Male auftreten, da sich eine Quellendateianweisung innerhalb einer Schleife befinden könnte, die viele Male ausgeführt wird. Es ist daher selbstverständlich, daß die bisher beschriebenen Suchrichtungsregeln auf Annahmen basieren und keine Garantie besteht, daß die Suchrichtung korrekt ist oder daß das Suchziel überhaupt im Erfassungspuffer existiert.
  • In einem speziellen Ausführungsbeispiel wird die Erfindung mit einem Logikanalysator und einer Vorrichtung unter Test verwendet. 4 ist ein Blockdiagramm einer typischen Anordnung, die bei der Verwendung der vorliegenden Erfindung verwendet wird, wobei eine Vorrichtung unter Test 44 mit einem Instrument 46 (z. B. einem Logikanalysator, einem Emulator usw.) verbunden ist und das Instrument 46 mit einem Arbeitsplatzrechner 48 verbunden ist. Der Arbeitsplatzrechner 48 zeigt Laufzeitdaten (die z. B. für eine leichtere Untersuchung vom Ingenieur disassembliert wurden) vom Instrument an und umfaßt auch den Quellencode hoher Ebene, der das Instrument ebenso betreibt. Der Arbeitsplatzrechner und das Instrument sind über die Übertragungsstrecke 50 verbunden, die ein Kabel umfassen kann, wenn das Instrument und der Arbeitsplatzrechner nahe beieinander liegen. In bestimmten Situationen kann das Instrument in einem Labor aufgestellt sein, während sich der Arbeitsplatzrechner im Büro des Ingenieurs befindet, und die Übertragungsstrecke 50 kann ein Netzwerk umfassen, wobei das Instrument ferngesteuert wird und vom Arbeitsplatzrechner nach Daten abgefragt wird. Der Arbeitsplatzrechner und das Instrument können auch geeigneterweise innerhalb derselben Einheit enthalten sein, wie beispielsweise in 7 gezeigt, in der ein Universalcomputer 48' der Arbeitsplatzrechner ist und ein eingebautes oder Einsteck-Instrumentenmodul (oder Module) 46' vorgesehen sind.
  • Wie durch 5 gezeigt, können die Erfassungsdaten vom Instrument und von der Vorrichtung unter Test alternativ während eines Echtzeitdurchlaufs des Instruments erfaßt und als Testdaten 52 gespeichert werden. Der Ingenieur kann dann die gespeicherten Testdaten zu irgendeinem anderen Zeitpunkt betrachten, wobei das Labor, das Instrument und die Vorrichtung unter Test zur Verwendung von anderen Ingenieuren freigegeben werden.
  • 6 ist eine Ansicht von Beispielfenstern, wie am Arbeitsplatzrechner 48 angezeigt, wobei das Fenster 54"c"-Quellencodeanweisungen hoher Ebene eines Systems, das vom Instrument 46 beobachtet wird, umfaßt. Das Fenster 56 umfaßt den entsprechenden disassemblierten Objektcode niedriger Ebene, der vom Instrument erfaßt wird. Im Quellenfenster 54 ist ein Teil der Zeile 46 einer Datei "demo.c" bei 58, "i < NUM_STATES;", hervorgehoben. Diese Anzeige wurde erzeugt, als der Ingenieur eine Suche nach einer entsprechenden Anweisung im Fenster 56 eingeleitet hat, indem er eine linke Maustaste geklickt hat, was dazu führte, daß der aufgefundene entsprechende Assemblercode im Fenster 56, "MOVEQ #08, D0", hervorgehoben wurde (durch die gestrichelte Linie 60 angegeben).
  • Obwohl die hierin gezeigten Beispiele das Suchen nach Assembleranweisungen oder Anweisungen niedriger Ebene, die einem Quellencode hoher Ebene entsprechen, betreffen, kann die Suche alternativ in einer entgegengesetzten Weise durchgeführt werden, wobei eine ausgewählte Anweisung in den Daten niedriger Ebene verwendet wird, um eine Suche nach entsprechenden Anweisungen in den Daten hoher Ebene einzuleiten. Eine umgekehrte Korrelation, die eine Nachschlagetabelle (z. B. eine existierende Tabelle mit einem anderen Index) umfassen kann, wird verwendet, um die Adressen niedriger Ebene mit den Quellenanweisungen hoher Ebene zu korrelieren. Der Erfassungspuffer kann beispielsweise ein Ablaufverfolgungspuffer sein und erfaßte Daten, auf die hierin Bezug genommen wird, können zweckmäßigerweise Daten umfassen, die vorher erfaßt und dann in einer Datei gespeichert wurden.
  • Obwohl das dargestellte Ausführungsbeispiel zweckmäßigerweise eine Nachschlagetabelle als Korrelationsdaten verwendet, um eine Korrelation von hoher zu niedriger Ebene zu erreichen, ist es selbstverständlich, daß die Erfindung nicht auf dieses Verfahren und diese Struktur begrenzt ist. Anstelle einer Nachschlagetabelle kann das System beispielsweise implementiert werden. um den Adressenbereich abzuleiten, der einer Datenauswahl hoher Ebene entspricht, indem die Diagnoseinformation aus der Objektdatei gelesen wird, jedesmal, wenn eine Korrelation stattfinden soll. Fachleute werden erkennen, daß andere Arten von Datenstrukturen auch zweckmäßigerweise verwendet werden, um die Korrelation zu erreichen.
  • Folglich stellt die vorliegende Erfindung ein verbessertes System zum Korrelieren von Ansichten hoher Ebene und niedriger Ebene von beispielsweise erfaßten Echtzeit-Testdaten für ein Instrument unter Test, das beispielsweise Quellendaten hoher und niedriger Ebene verwendet, bereit. Das System ermöglicht die willkürliche Auswahl von Anweisungen (im Gegensatz zur nächsten oder vorherigen) in einer Ansicht, dann das Vorwärts- oder Rückwärtssuchen in der alternativen Ansicht, um entsprechende Anweisungen aus der anderen Ansicht aufzufinden. Ein Testingenieur kann dann Quellencodeanweisungen und ihre entsprechenden Anweisungen niedriger Ebene ohne den Bedarf, Daten oder Anweisungen mit einem Element auf einmal zu durchschreiten, schneller betrachten.
  • Typische Probleme, die ein Benutzer eines erfindungsgemäßen Systems löst, sind die Erkennung der Quelle von Speicherverstümmelungsproblemen, Zeitsteuerungs- und Leistungsproblemlösungen und anderes zugehöriges anomales Verhalten, die nur während eines Betriebs eines Systems mit voller Geschwindigkeit auftreten können, oder Probleme, die nur nach vielen Betriebsstunden eines Systems auftreten können.
  • Obwohl ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung gezeigt und beschrieben wurde, ist es für Fachleute ersichtlich, daß viele Änderungen und Modifikationen vorgenommen werden können, ohne von der Erfindung in ihren breiteren Aspekten abzuweichen. Die beigefügten Ansprüche sollen daher alle derartigen Änderungen und Modifikationen, die innerhalb den Schutzbereich der Erfindung fallen, abdecken.

Claims (10)

  1. Logikanalysator mit: einem Erfassungssystem (46) zum Erfassen von Datenabtastwerten; einem Speicher (36) zum Speichern der erfaßten Daten; und gekennzeichnet durch ein System zum Identifizieren eines Erfassungsabtastwerts entsprechend einer Quellencodeanweisung mit einer Einrichtung (54) zum Betrachten einer Anzeige von Befehlszeilen eines in dem Quellencode geschriebenen Programms; einer Einrichtung (56) zum Betrachten einer Anzeige von Befehlszeilen eines Programms, das von dem im Quellencode geschriebenen Programm in den Objektcode kompiliert wurde; einem Korrelator (15, 48) zum Korrelieren eines gegebenen Befehls in dem Quellencode mit einem Bereich von Adressen in dem Objektcode; und einem Suchmittel (26, 28, 30, 32, 34, 36, 38, 40, 42) zum Durchsuchen der Erfassungsdatenabtastwerte in dem Speicher (36) nach einem Auftreten eines erfaßten Datenabtastwerts mit einem Wert gleich einem Adressenwert innerhalb des Bereichs von Adressen in dem Objektcode.
  2. Logikanalysator nach Anspruch 1, dadurch gekennzeichnet, daß der Korrelator (15, 48) eine Nachschlagetabelle umfaßt, wobei die Nachschlagetabelle Stellen der Quellencodeanweisungen mit Bereichen von Stellen von entsprechenden Objektcodeanweisungen korreliert.
  3. Logikanalysator nach Anspruch 1, welcher ferner durch eine Schnittstelleneinrichtung zum Empfangen von Befehlen von einem Benutzer gekennzeichnet ist.
  4. Logikanalysator nach Anspruch 3, dadurch gekennzeichnet, daß die Schnittstelleneinrichtung entweder Vorwärtssuchen (30) oder Rückwärtssuchen (32) innerhalb der erfaßten Datenabtastwerte angibt.
  5. Logikanalysator nach Anspruch 4, welcher ferner durch eine Zeigervorrichtung (49) gekennzeichnet ist, wobei die Zeigervorrichtung von einem Benutzer verwendet wird, um eine Quellencodeanweisung auszuwählen, für die ein entsprechender Erfassungsabtastwert aufgefunden werden soll.
  6. Logikanalysator nach Anspruch 5, dadurch gekennzeichnet, daß die Zeigervorrichtung einen ersten (51) und einen zweiten (53) Selektor aufweist, und daß bei Betätigung des ersten Selektors das Suchsystem in einer ersten Richtung sucht, und bei Betätigung des zweiten Selektors das Suchsystem in einer zweiten Richtung sucht.
  7. Logikanalysator nach Anspruch 6, dadurch gekennzeichnet, daß die erfaßten Datenabtastwerte Objektcodedaten umfassen.
  8. Logikanalysator nach Anspruch 1, dadurch gekennzeichnet, daß die Quellencodeanweisung Quellencodedaten in Assemblersprache umfaßt.
  9. Logikanalysator nach Anspruch 6, gekennzeichnet durch die Einrichtung (54) zum Betrachten einer Anzeige von Befehlszeilen eines in dem Quellencode geschriebenen Programms mit einer ersten Cursorpositionierungseinrichtung zum Hervorheben einer Zeile des Quellencodes; die Einrichtung (56) zum Betrachten einer Anzeige von Befehlszeilen eines Programms, das von dem im Quellencode geschriebenen Programm in den Objektcode kompiliert wurde, mit einer zweiten Cursorpositionierungseinrichtung zum Hervorheben einer Zeile des Objektcodes; und ferner dadurch gekennzeichnet, daß, wenn die Sucheinrichtung ein Auftreten des erfaßten Datenabtastwerts mit einem Wert gleich einem Adressenwert innerhalb des Bereichs von Adressen in dem Objektcode auffindet, die zweite Cursorpositionierungseinrichtung den Cursor in eine entsprechende Position in der Anzeige des Objektcodes bewegt.
  10. Logikanalysator nach Anspruch 2, dadurch gekennzeichnet, daß die zum Auffinden eines entsprechenden erfaßten Datenabtastwerts zu verwendende Quellencodeanweisung willkürlich ausgewählt werden kann.
DE69814750T 1997-07-17 1998-07-17 Logikanalysator zur Erkennung der Übereinstimmung einer Abtastungsprobe mit einem Quellcodebefehl Expired - Lifetime DE69814750T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US895544 1997-07-17
US08/895,544 US6016556A (en) 1997-07-17 1997-07-17 System for identifying an acquisition sample corresponding to a source code statement

Publications (2)

Publication Number Publication Date
DE69814750D1 DE69814750D1 (de) 2003-06-26
DE69814750T2 true DE69814750T2 (de) 2004-03-25

Family

ID=25404662

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69814750T Expired - Lifetime DE69814750T2 (de) 1997-07-17 1998-07-17 Logikanalysator zur Erkennung der Übereinstimmung einer Abtastungsprobe mit einem Quellcodebefehl

Country Status (5)

Country Link
US (1) US6016556A (de)
EP (1) EP0893762B1 (de)
JP (1) JP3982912B2 (de)
CN (1) CN1105351C (de)
DE (1) DE69814750T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO399596A0 (en) * 1996-12-02 1997-01-02 Resmed Limited A harness assembly for a nasal mask
US6708169B1 (en) * 2000-07-10 2004-03-16 International Business Machines Corporation Apparatus and method for generating a merged symbol file for verifying symbolic data
US6988263B1 (en) 2000-07-10 2006-01-17 International Business Machines Corporation Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
EP1274013A1 (de) * 2001-07-03 2003-01-08 Hewlett-Packard Company Prozessüberwachungsmodul
US7246267B2 (en) * 2001-10-01 2007-07-17 Tektronix, Inc. Logic analyzer having a disassembler employing symbol table information for identifying op-codes
US7343523B2 (en) * 2005-02-14 2008-03-11 Aristoga, Inc. Web-based analysis of defective computer programs
JP4894362B2 (ja) * 2006-06-09 2012-03-14 富士通株式会社 稼働状況監視プログラム
CN101393521B (zh) * 2008-11-13 2012-04-25 上海交通大学 Windows应用程序内部固化数据的提取系统
US20110246966A1 (en) * 2010-04-06 2011-10-06 Sony Computer Entertainment America Inc. Embedding source files into program symbol files
US20150347354A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Discrete source code timelines
US10157057B2 (en) 2016-08-01 2018-12-18 Syntel, Inc. Method and apparatus of segment flow trace analysis
CN107390974B (zh) * 2017-07-21 2020-09-01 北京小米移动软件有限公司 用于网页调试的代码查找方法、装置、终端及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57157362A (en) * 1981-03-25 1982-09-28 Hitachi Ltd Method and apparatus of execution path career data pickup for architecture program
US4694420A (en) * 1982-09-13 1987-09-15 Tektronix, Inc. Inverse assembly method and apparatus
US4937740A (en) * 1985-09-18 1990-06-26 Cadre Technologies, Inc. Real time software analyzing system for storing selective m-bit addresses based upon correspondingly generated n-bit tags
JPS62214443A (ja) * 1986-03-17 1987-09-21 Fanuc Ltd エミユレ−シヨン実行方法
US4953084A (en) * 1987-11-16 1990-08-28 Hewlett-Packard Company Method and apparatus using variable ranges to support symbolic debugging of optimized code
JPH0793233A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd ファームウェア・トレースデータ取得方式
JP3130446B2 (ja) * 1995-05-10 2001-01-31 松下電器産業株式会社 プログラム変換装置及びプロセッサ

Also Published As

Publication number Publication date
JPH11134215A (ja) 1999-05-21
DE69814750D1 (de) 2003-06-26
CN1105351C (zh) 2003-04-09
EP0893762A1 (de) 1999-01-27
CN1206142A (zh) 1999-01-27
US6016556A (en) 2000-01-18
EP0893762B1 (de) 2003-05-21
JP3982912B2 (ja) 2007-09-26

Similar Documents

Publication Publication Date Title
DE69720821T2 (de) Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle
DE69814750T2 (de) Logikanalysator zur Erkennung der Übereinstimmung einer Abtastungsprobe mit einem Quellcodebefehl
Hunt MacProbe: A Macintosh-based experimenter’s workstation for the cognitive sciences
DE60001916T2 (de) Plattformunabhängige speicherabbild analysearchitektur zur programmfehlerbeseitigung
DE19729180C2 (de) Verfahren zum Korrelieren von Logikanalysatorzustandserfassungsdaten mit zugeordneten Anwendungsdatenstrukturen
DE102005031913A1 (de) Verfahren, System und Programm zur Modell-basierten Softwareentwicklung mit Testfallerzeugung und Bewertung
DE10047612B4 (de) Logikanalysator mit durch ein Signalformexemplar definierter Trigger-Spezifikation
DE19960050A1 (de) Grafische Benutzerschnittstelle zur Entwicklung von Anwendungsbeispielen unter Verwendung einer Testobjektbibliothek
DE112008003732T5 (de) Automatische Reproduktionstest-Vorrichtung und automatisches Reproduktionstest-Verfahren in einem eingebetteten System
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
DE10063662A1 (de) Logikanalysator mit gemischter textlicher und graphischer Trigger-Spezifikation
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
DE3341766A1 (de) Verfahren und vorrichtung zum zeitlichen koordinieren von daten
DE112016002275T5 (de) Koordinierte benutzerwortauswahl zum übersetzen und erhalten von kontextinformtionen für das ausgewählte wort
DE112015006551T5 (de) Speicherprogrammierbare Steuerung, Entwicklungswerkzeug und Entwicklungswerkzeugprogramm
DE2121330A1 (de) Verfahren und Schaltungsanordnung zum Prüfen elektronischer digital arbeitender Geräte und ihre Bauteile
DE102019203149A1 (de) Zeitreihen-datenanalysevorrichtung
DE4333286C2 (de) Verfahren und Vorrichtung zur Diagnose von Maschinenstörungen
DE102020207364A1 (de) Vorrichtung und verfahren zum interaktiven ansehen und clustern von datensegmenten aus langen datenaufzeichnungen
EP0664905B1 (de) Verfahren zur durchfürhung von tests an auf einem rechner parallel ablauffähigen objekten eines objektorientierten programmes
DE10393511T5 (de) Programmentwicklungsunterstützungsvorrichtung, Programmausführungsvorrichtung, Kompilierverfahren und Diagnoseverfahren
DE102004006285A1 (de) Visualisierung von strukturierten Daten
DE102021132827A1 (de) Verfahren zur automatischen Untersuchung von Zuständen und Übergängen einer Mensch- Maschine-Schnittstelle ( HMI)
EP1237118B1 (de) Verfahren zum Spezifizieren, Ausführen und Analysieren von Verfahrensabläufen beim Erkennen
DE10101067A1 (de) Programmausführungssystem für ein Halbleiter-Prüfgerät

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: TEKTRONIX, INC., BEAVERTON, OREG., US

8364 No opposition during term of opposition