DE19954810B4 - Method for generating and debugging a machine program - Google Patents

Method for generating and debugging a machine program Download PDF

Info

Publication number
DE19954810B4
DE19954810B4 DE1999154810 DE19954810A DE19954810B4 DE 19954810 B4 DE19954810 B4 DE 19954810B4 DE 1999154810 DE1999154810 DE 1999154810 DE 19954810 A DE19954810 A DE 19954810A DE 19954810 B4 DE19954810 B4 DE 19954810B4
Authority
DE
Germany
Prior art keywords
debugging
machine program
program
symbol information
object files
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 - Fee Related
Application number
DE1999154810
Other languages
German (de)
Other versions
DE19954810A1 (en
Inventor
Ulrich Dr. Luedicke
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.)
Tenovis GmbH and Co KG
Original Assignee
Tenovis GmbH and Co KG
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 Tenovis GmbH and Co KG filed Critical Tenovis GmbH and Co KG
Priority to DE1999154810 priority Critical patent/DE19954810B4/en
Publication of DE19954810A1 publication Critical patent/DE19954810A1/en
Application granted granted Critical
Publication of DE19954810B4 publication Critical patent/DE19954810B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3624Software debugging by performing operations on the source code, e.g. via a compiler

Abstract

Verfahren zur Erzeugung eines Debugging-fähigen Maschinenprogramms aus einer Programmierhochsprache, wobei mit Hilfe eines Compilers aus mindestens einem Quelltext mindestens eine Objektdatei erzeugt wird, welche die für ein Debugging benötigte Symbolinformation (11a, 11b) enthält, und wobei mit Hilfe eines Linkers (12) die Objektdateien zum Maschinenprogramm (13, 14, 18, 19) gebunden werden, dadurch gekennzeichnet, dass der Linker im Maschinenprogramm eine Referenztabelle (19) ablegt, welche auf die Objektdateien mit den für ein Debugging benötigten Symbolinformationen (11a, 11b) verweist.method for generating a debug-enabled Machine program from a high-level programming language, with help a compiler from at least one source code at least one object file is generated, which for debugging required symbol information (11a, 11b) contains and wherein with the aid of a linker (12) the object files to the machine program (13, 14, 18, 19), characterized in that the Linker in the machine program stores a reference table (19), which on the object files with the for needed a debugging Symbol information (11a, 11b) refers.

Figure 00000001
Figure 00000001

Description

Technisches GebietTechnical area

Die Erfindung betrifft ein Verfahren zur Erzeugung eines Debuggingfähigen Maschinenprogramms aus einer Programmierhochsprache, wobei mit Hilfe eines Compilers aus mindestens einem Quelltext mindestens eine Objektdatei erzeugt wird, welche die für ein Debugging benötigte Symbolinformation enthält, und wobei mit Hilfe eines Linkers die Objektdateien zu einem Maschinenprogramm gebunden werden. Ferner betrifft die Erfindung ein Verfahren zum Debugging eines mit dem eingangs genannten Verfahren erzeugten Maschinenprogramms.The The invention relates to a method for generating a debug-enabled machine program from a high-level programming language, using a compiler generates at least one object file from at least one source code which is the for needed a debugging Contains symbol information, and wherein using a linker, the object files to a machine program be bound. Furthermore, the invention relates to a method for Debugging a machine program generated by the method mentioned above.

Stand der TechnikState of the art

Auf einem Computer beziehungsweise einem Mikroprozessor (CPU) ablauffähige Programme werden in der Regel in einer sogenannten Programmierhochsprache wie zum Beispiel BASIC, Fortan, Pascal, C, C++ oder dergleichen geschrieben. Diese Hochsprachen sind in ihrer Syntax auf die menschliche (logische) Denkweise abgestimmt und erlauben somit dem Programmierer eine leichter verständliche und kontrollierbarere Programmerzeugung. Die in einer derartigen Hochsprache formulierten Instruktionen werden in sogenannten Quelltextdateien abgelegt.On a computer or a microprocessor (CPU) executable programs are usually in a so-called high-level programming language such as Example BASIC, Fortan, Pascal, C, C ++ or the like written. These high-level languages are syntax-based on the human (logical) Mindset and thus allow the programmer one easier understandable and more controllable program generation. Those in such a high-level language formulated instructions are in so-called source text files stored.

Um aus den Quelltexten ein auf einem bestimmten Mikroprozessor ablauffähiges Maschinenprogramm zu machen, muss der Quelltext aus der Hochsprache in die Maschinensprache übersetzt werden. Diese Übersetzung geschieht mit Hilfe eines sogenannten Compilers. Insbesondere bei größeren Programmen enthält dabei der Quelltext in der Regel noch nicht sämtliche Informationen, die für das Erstellen des vollständigen Maschinenprogramms notwendig sind. Vielmehr sind verschiedene Teile des Programms oder benötigte Unterroutinen (Unterprogramme) oft in ver schiedenen Quelltexten abgelegt oder in bereits in Maschinensprache übersetzten Bibliotheken vorhanden. Mit Hilfe des Compilers wird daher ein bestimmter Quelltext in der Regel zunächst in eine sogenannte Objektdatei übersetzt, welche den entsprechenden Programmteil in Maschinenform enthält, die für sich selbst gesehen jedoch noch kein vollständiges ablauffähiges Programm darstellt.Around from the source code a executable on a particular microprocessor machine program To make the source text from the high-level language in the machine language. This translation happens with the help of a so-called compiler. Especially at larger programs contains while the source text usually does not have all the information that for the Create the complete Machine program are necessary. Rather, different parts of the program or needed Subroutines (subroutines) often in different source texts filed or already translated in machine language translated libraries. With the help of the compiler, therefore, a specific source code in the Usually first in translated a so-called object file, which contains the corresponding program part in machine form, the for themselves however, there is no complete executable program yet represents.

Das endgültige Maschinenprogramm wird vielmehr erst in einem weiteren Schritt mit Hilfe eines sogenannten Linkers aus den verschiedenen beteiligten Objektdateien sowie aus Routinen der Bibliothek zusammen gebunden ("gelinkt"). Erst durch dieses Linken entsteht das vollständige, ablauffähige (ausführbare) Maschinenprogramm.The final Rather, the machine program will only be included in a further step Help of a so-called linker from the various involved Object files as well as from routines of the library bound together ( "Linked"). Only through this Left is the complete, executable (executable) Machine program.

Da nicht nur bei umfangreicheren Programmen eine vollständig fehlerfreie Formulierung des Quelltextes so gut wie unmöglich ist, sind Hilfsprogramme entwickelt worden, mit welchen durch einen kontrollierten Ablauf des Maschinenprogramms Programmierfehler gesucht werden können. Derartige Programme sind als sogenannte "Debugger" oder "Debugging-Programme" bekannt. Ein solches Debugging-Programm erlaubt das kontrollierte und insbesondere schrittweise Abarbeiten des Maschinenprogramms, wobei jederzeit die Korrespondenz des gerade ausgeführten Programmschrittes mit der entsprechenden Stelle im Quelltext verfolgt und bei Bedarf angezeigt wird, damit der Programmierer das Auftreten einer Fehlersituation mit dem hierfür ursächlichen Programmcode im Quelltext identifizieren kann. Um diese Korrespondenz zwischen Quelltext und ausführbarem Maschinenprogramm herstellen zu können, benötigt der Debugger entsprechende Informationen darüber, welche abstrakt benannten Variablen und Symbole im Quelltext welchen Adressen im Maschinenprogramm entsprechen. Diese Informationen werden dem Debugger von sogenannten Symboltabellen zur Verfügung gestellt, welche der Compiler beim Übersetzen des Quelltextes anlegt und der Objektdatei anfügt. Die Symboltabellen werden vom Linker aus den Objektdateien übernommen und dem ausführbaren Maschinenprogramm angehängt.There not only for larger programs a completely error-free Formulation of the source text is virtually impossible, are utility programs been developed, with which by a controlled process of the machine program programming errors can be searched. Such programs are known as so-called "debuggers" or "debugging programs". Such Debugging program allows the controlled and in particular step by step Processing the machine program, whereby at any time the correspondence of the currently running Program step followed with the appropriate place in the source code and, if necessary, to let the programmer know the occurrence an error situation with the cause code in the source code can identify. To this correspondence between source code and executable To be able to produce a machine program, the debugger needs it Information about it, which abstract named variables and symbols in the source text which Addresses in the machine program correspond. This information will be provided to the debugger by so-called symbol tables, which the compiler translates creates the source text and appends the object file. The symbol tables become taken from the linker from the object files and the executable Machine program attached.

Diesen Anhang des Maschinenprogramms verwertet dann der Debugger, um seine Funktionen bei der Fehlersuche auszuüben.this Annex of the machine program then uses the debugger to his To perform troubleshooting functions.

In der Praxis führt das oben genannte Verfahren indes zu Problemen, da die Symbolinformation oft ein Vielfaches des eigentlichen Programmcodes beträgt. Hierdurch wird zum einen der Linkvorgang verlängert, zum anderen wird auch das Debugging schwerfällig, da der Debugger große Teile des Adressraumes mit der Symboltabelle belegt und häufig erhebliche Zeiten darauf verwendet, diese Symboltabelle zu verwalten und benötigte bzw. nicht benötigte Teile zwischen verschiedenen Speicherbereichen hin- und herzuladen.In the practice leads the above-mentioned method, however, causes problems because the symbol information often a multiple of the actual program code. hereby On the one hand, the linking process is extended, on the other hand, too the debugging cumbersome, because the debugger big Parts of the address space with the symbol table occupied and often considerable Times used to manage this symbol table and needed or not needed Move parts between different storage areas.

Weitere Konzepte und Methoden zur Überprüfung von Quelltextdateien und dem dazugehörigen Maschinenprogramm sind aus der US 5,371,747 A , US 5,093,914 A und US 5,854,924 A bekannt.Other concepts and methods for checking source code files and the associated machine program are from the US 5,371,747 A . US 5,093,914 A and US 5,854,924 A known.

Darstellung der Erfindung, Aufgabe, Lösung, VorteilePresentation of the invention, object, solution, advantages

Aufgabe der vorliegenden Erfindung war es daher, ein Verfahren zur Erzeugung eines Debugging-fähigen Maschinenprogramms aus einer Programmierhochsprache und ein Verfahren zum Debugging eines Maschinenprogramms zur Verfügung zu stellen, welches ein schnelleres Linken und ein schnelleres Debuggen erlaubt.task The present invention was therefore a method of production a debugging-enabled Machine program from a high-level programming language and a procedure to debug a machine program, which one faster links and faster debugging allowed.

Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruches 1 sowie ein Verfahren mit den Merkmalen des Anspruchs 2 gelöst.These The object is achieved by a method having the features of the claim 1 and a method having the features of claim 2 solved.

Das Verfahren zur Erzeugung eines ablauffähigen und Debugging-fähigen Maschinenprogramms aus einer Programmierhochsprache läuft dabei so ab, dass zunächst mit Hilfe eines Compilers aus mindestens einem Quelltext mindestens eine Objektdatei erzeugt wird, welche die für ein Debugging benötigte Information zum Beispiel in Form einer Symboltabelle enthält. Mit Hilfe eines Linkers werden sodann die Objektdateien und gegebenenfalls Programmbibliotheken sowie weitere Informationsquellen zu dem Maschinenprogramm zusammengebunden. Erfindungsgemäß erfolgt dieses Zusammenbinden dabei so, dass der Linker im Maschinenprogramm eine Referenztabelle anlegt, welche auf die Objektdateien mit den für ein Debugging benötigten Symbolinformationen verweist.The Method for creating an executable and debugging machine program a programming language is running doing so off that first with the help of a compiler from at least one source code at least an object file is generated containing the information needed for debugging for example, in the form of a symbol table. With the help of a linker then the object files and possibly program libraries and other sources of information related to the machine program. According to the invention this linking so that the linker in the machine program creates a reference table, which points to the object files with the for a Needed debugging Symbol information refers.

Anders als beim Stand der Technik werden also nicht die kompletten Symboltabellen der einzelnen Objektdateien dem Maschinenprogramm angehängt. Vielmehr verbleibt diese Information in den Objektdateien, und dem Maschinenprogramm wird lediglich ein Verweis auf die entsprechende Objektdatei (beziehungsweise deren Symboltabelle) angehängt. Ein solcher Verweis auf eine Datei mit den Informationen ist verständlicherweise erheblich kürzer als die entsprechende Information selbst. Das heißt, dass mit dem erfindungsgemäßen Verfahren ein erheblich kleineres und im wesentlichen auf den eigentlichen Programmcode reduziertes Maschinenprogramm erzeugt werden kann. Die Erzeugung eines vollständig auf den Programmcode reduzierten Maschinenprogramms ist zwar aus dem Stand der Technik bekannt (zum Beispiel UNIX-Befehl. "Id – s", das heißt Linken unter Entfernung ("Strip") der Symboltabelle), jedoch führt dies zu Maschinenprogrammen, mit denen ein Debugging nicht mehr möglich ist. Mit dem erfindungsgemäß erzeugten Maschinenprogramm kann dagegen ein Debugging mit der gleichen Funktionalität wie beim Stand der Technik ausgeführt werden, da der Debugger über die Referenztabelle sich jederzeit die benötigten Informationen aus den Symboltabellen beschaffen kann.Different as in the prior art so not the complete symbol tables of the individual object files attached to the machine program. Much more This information remains in the object files and in the machine program is merely a reference to the corresponding object file (or their symbol table). Such a reference to a file containing the information is understandable considerably shorter than the corresponding information itself. That is, with the inventive method a considerably smaller and essentially to the actual Program code reduced machine program can be generated. The generation of a complete machine program reduced to the program code is off known in the art (for example, UNIX command "Id-s", that is, left while removing ("strip") the symbol table), however, leads this to machine programs that no longer debugging possible is. With the inventively generated Machine program, on the other hand, can debug with the same functionality as the State of the art be because the debugger over the reference table at any time the required information from the Can obtain symbol tables.

Zur Erfindung gehört weiterhin ein Verfahren zum Debugging eines Maschinenprogramms, wobei das Maschinenprogramm mit einem Verfahren der oben geschilderten Art erzeugt wurde. Das heißt, dass dieses Maschinenprogramm eine Referenztabelle enthält, welche auf die Objektdateien mit den für ein Debugging benötigten Symbolinformationen verweist. Das erfindungsgemäße Debugging-Verfahren ist dadurch gekennzeichnet, dass ein Debugging-Programm während der Laufzeit des Maschinenprogramms die benötigten Symbolinformationen mit Hilfe der Referenztabelle nur aus derjenigen Objektdatei lädt, in deren Kontext sich das Programm aktuell befindet.to Invention belongs a method for debugging a machine program, the machine program having a method of the above Art was created. It means that this machine program contains a reference table which on the object files with the for one Needed debugging Symbol information refers. The debugging method according to the invention is characterized in that a debugging program during the Running time of the machine program with the required symbol information Help the reference table only from that object file loads in whose Context the program is currently located.

Grundsätzlich könnte ein Debugging eines Maschinenprogramms, das mit dem oben erläuterten Verfahren erzeugt wurde, ähnlich ablaufen wie ein herkömmliches Debugging. Das heißt, der Debugger könnte sich zuerst mit Hilfe der Referenztabelle aus den Objektdateien alle Symboltabellen zusammenstellen und diese ständig präsent, das heißt im Arbeitsspeicher verfügbar halten. Der Debugger würde in diesem Fall quasi den Schritt nachholen, den beim Stand der Technik der Linker durch das Anfügen der Symboltabellen an das Maschinenprogramm ausübt. Der Vorteile gegenüber dem Stand der Technik bestünde darin, dass der Linkvorgang nicht mit dieser Tätigkeit belastet wird und ein erheblich kürzeres Maschinenprogramm (Code plus Referenztabelle) entsteht. Bei dem in Anspruch 2 vorgeschlagenen Debugging-Verfahren wird jedoch anders vorgegangen und ein zusätzlicher Vorteil erzielt. Das Debugging-Programm holt sich nämlich die jeweils benötigten Symbolinformationen abhängig vom jeweiligen Kontext, in dem sich das Programm gerade befindet, gezielt aus den zugehörigen Objektdateien. Das heißt, dass nicht ständig die komplette Symboltabelle mit allen Informationen im Speicher vorrätig zu halten ist und verwaltet werden muss, sondern dass nur die tatsächlich aktuell benötigten Symbolinformationen bearbeitet werden. Dies spart zum einen Speicherplatz, zum anderen beschleunigt sich in der Regel hierdurch die Arbeit des Debuggers erheblich, da ein aufwendiges Verwalten eines großen Speicherraumes für die Symbolinformation vermieden wird.Basically, one could Debugging a machine program using the procedure outlined above was generated, similar run like a conventional one Debugging. This means, the debugger could first using the reference table from the object files compile all symbol tables and present them constantly, that is in the main memory available hold. The debugger would be in In this case, to catch up with the step, in the prior art the linker by attaching of the symbol tables to the machine program. The advantages over the Prior art would exist in that the link process is not charged with this activity and a considerably shorter Machine program (code plus reference table) is created. In which However, the debugging method proposed in claim 2 is different proceeded and an additional Advantage achieved. The debugging program gets namely the each needed Symbol information dependent targeted by the context in which the program is currently located from the associated Object files. This means, that not constantly the complete symbol table with all information in memory available to maintain and manage, but that only the actual current required Symbol information to be edited. This saves storage space, on the other hand, work generally accelerates as a result of the debugger significantly, as a complex managing a large memory space for the Symbol information is avoided.

In einer Weiterbildung des zuletzt genannten Verfahrens gemäß Anspruch 3 erfolgt das Laden der für ein Debugging benötigten Symbolinformationen aus den jeweiligen Objektdateien über einen Cache-Mechanismus. Das heißt, dass ein Zwischenspeicher (Cache) mit schnellem Zugriff vorhanden ist, in welchem voraussichtlich in den folgenden Programmschritten benötigte Symbolinformationen abgelegt werden, so dass sie ohne Verzögerung zur Verfügung stehen. Mit Hilfe eines solchen Cache-Mechanismus ist es demnach möglich, eventuell auftretende Zeitnachteile durch den erforderlichen Zugriff auf die Symboltabellen der Objektdateien auszugleichen.In a development of the latter method according to claim 3, the loading takes place for needed a debugging Symbol information from the respective object files via a Cache mechanism. This means, that there is a cache (cache) with fast access which is expected in the following program steps needed Symbol information are stored so that they are available without delay. With the help of such a cache mechanism, it is therefore possible, possibly occurring time disadvantages due to the required access to the Balance symbol tables of object files.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

Im folgenden wird die Erfindung mit Hilfe der Figuren beispielhaft erläutert. Es zeigen:in the The following is an example of the invention with the aid of the figures explained. Show it:

1 schematisch den Vorgang des Linkens und des Debuggens nach dem Stand der Technik; 1 schematically the process of linking and debugging according to the prior art;

2 den erfindungsgemäßen Vorgang des Linkens und Debuggens. 2 the inventive process of Linking and debugging.

Bester Weg zur Ausführung der ErfindungBest way to carry out the invention

1 zeigt schematisch die durch einen Linker 12 und einen Debugger 15 nach dem Stand der Technik erzeugten Programme. Ausgangspunkt sind im linken Teil der Figur mehrere Objektdateien (Objektfiles), welche jeweils aus einem eigentlichen Programmcode 10a bzw. 10b sowie daran angehängten Debug-Daten 11a bzw. 11b bestehen. Diese Objektdateien sind durch einen (nicht dargestellten) Compiler aus einer Programmierhochsprache erzeugt worden. Die gängigen Compiler zum Beispiel aus dem UNIX-Umfeld legen die zum Debuggen benötigten Symbolinformationen in den erzeugten Objektdateien ab. Aus den Objektdateien (und gegebenenfalls Programmbibliotheken) erzeugt der Linker 12 das ausführbare Maschinenprogramm. Dieses besteht aus dem eigentlichen Programmcode 13 und den Debug-Daten 14, welche vom Linker aus den Debug-Daten 11a, 11b der Objektdateien erzeugt werden. 1 schematically shows the by a linker 12 and a debugger 15 programs produced by the prior art. Starting point are in the left part of the figure several object files (object files), each of which is an actual program code 10a respectively. 10b and attached debug data 11a respectively. 11b consist. These object files have been generated by a compiler (not shown) from a high-level programming language. Common compilers, for example from the UNIX environment, store the symbol information needed for debugging in the generated object files. The linker generates from the object files (and possibly program libraries) 12 the executable machine program. This consists of the actual program code 13 and the debug data 14 , which from the linker from the debug data 11a . 11b the object files are generated.

Bei der Fehlerüberprüfung und Fehlersuche in dem Maschinenprogramm 13, 14 mit Hilfe eines Debuggers 15 lädt der Debugger 15 die Symbolinformationen 14 aus dem Maschinenprogramm in den virtuellen Adressraum und baut dort entsprechende Datenstrukturen (Code 16, Debug-Daten 17) auf.During error checking and troubleshooting in the machine program 13 . 14 with the help of a debugger 15 loads the debugger 15 the symbol information 14 from the machine program into the virtual address space and builds there corresponding data structures (code 16 , Debug data 17 ) on.

Da die Symbolinformation oft ein Vielfaches des eigentlichen Programmcodes beträgt, führt das beschriebene Verfahren nach dem Stand der Technik zu einer deutlichen Verlängerung des Linkvorganges im Vergleich zum Arbeiten ohne Debug-Informationen. Weiterhin belegt der De bugger mit seiner Symboltabelle große Teile des virtuellen Adressraums. Der Aufbau dieser Tabellen und die anschließend ausgelösten Paging-Vorgänge (das heißt das Hin- und Herladen von Programmen zwischen Speichern) verschlechtern das Antwort-Zeitverhalten des Debuggers bei größeren Programmen dramatisch.There the symbol information is often a multiple of the actual program code is, performs the described Method of the prior art to a significant extension Linking versus working without debug information. Furthermore, the De Bugger occupies large parts with its symbol table the virtual address space. The structure of these tables and the subsequent paging operations (the is called the loading and unloading of programs between memories) worsen the response time response of the debugger for larger programs dramatically.

Diese Probleme werden mit einem Verfahren zum Linken und zum Debuggen gemäß der vorliegenden Erfindung vermieden. Dieses Verfahren ist in 2 schematisch dargestellt. Das erfindungsgemäße Verfahren geht von den in üblicher Weise erstellten Objektdateien bestehend aus Codesegmenten 10a, 10b sowie Debug-Daten 11a und 11b aus. Der Linker 12 liest die Debug-Symbolinformationen aus den Objektdateien jedoch nicht mehr komplett ein. Stattdessen legt er im erzeugten Maschinenprogramm neben dem eigentlichen Programmcode 18 nur eine Tabelle 19 mit Referenzen und Kennungen ab, die auf die entsprechenden Objektdateien verweisen und diese eindeutig identifizieren. Das Maschinenprogramm wird dadurch erheblich kleiner, da nicht mehr die kompletten Debug-Daten 14, sondern nur noch Referenzen auf diese Daten enthalten sind. Bereits durch diese Maßnahme erreicht die Erfindung Vorteile, die in einem verkleinerten Maschinenprogramm sowie in verkürzten Linkzeiten bestehen.These problems are avoided with a method of linking and debugging according to the present invention. This procedure is in 2 shown schematically. The inventive method is based on the object files created in the usual way consisting of code segments 10a . 10b as well as debug data 11a and 11b out. The linker 12 however, does not completely read the debug symbol information from the object files. Instead, he puts in the generated machine program next to the actual program code 18 only one table 19 with references and identifiers that reference the corresponding object files and uniquely identify them. As a result, the machine program becomes considerably smaller, as it is no longer the complete debug data 14 but only references to this data are included. Already by this measure, the invention achieves advantages that exist in a reduced machine program and in shortened link times.

Weiterhin gehört zur Erfindung ein Debugger 20, welcher ein Debugging des wie oben beschrieben erzeugten Maschinenprogramms erlaubt. Dieser Debugger 20 baut zur Laufzeit des Maschinenprogramms nur noch die Symboltabelleninformation derjenigen Objektdateien im virtuellen Adressraum auf, in denen sich der aktuelle Debug-Kontext befindet. Dabei wird vorzugsweise ein Cache-Mechanismus verwendet, der die Ladevorgänge für die Symbolinformationen verringert. Durch dieses Verfahren wird gerade bei größeren Programmsystemen der benutzte virtuelle Adressraum drastisch verkleinert und dadurch das Laufzeitverhalten deutlich verbessert. Da nicht mehr die komplette Symbolinformation vom Debugger 20 geladen wird, ist ein schnelleres Starten des Debuggers möglich. In der Regel zeigt der Debugger 20 auch kürzere Antwortzeiten, da die Zahl der im Adressraum durchzuführenden Paging-Vorgänge reduziert wird. Schließlich ist mit dem erfindungsgemäßen Debugger auch deshalb eine Kostenersparnis möglich, weil auf dem entsprechenden Computersystem weniger Hauptspeicher zur Ausführung des Programms benötigt wird.Furthermore, the invention includes a debugger 20 which allows debugging of the machine program generated as described above. This debugger 20 At runtime of the machine program, only the symbol table information of those object files in the virtual address space in which the current debug context is located is built. In this case, a cache mechanism is preferably used, which reduces the loading of the symbol information. With this method, the virtual address space used is drastically reduced, especially in the case of larger program systems, and the runtime behavior is thereby significantly improved. There no longer the complete symbol information from the debugger 20 is loaded, a faster start of the debugger is possible. In general, the debugger shows 20 also shorter response times, since the number of paging operations to be performed in the address space is reduced. Finally, with the debugger according to the invention, therefore, a cost saving is also possible because less main memory is required to execute the program on the corresponding computer system.

Claims (3)

Verfahren zur Erzeugung eines Debugging-fähigen Maschinenprogramms aus einer Programmierhochsprache, wobei mit Hilfe eines Compilers aus mindestens einem Quelltext mindestens eine Objektdatei erzeugt wird, welche die für ein Debugging benötigte Symbolinformation (11a, 11b) enthält, und wobei mit Hilfe eines Linkers (12) die Objektdateien zum Maschinenprogramm (13, 14, 18, 19) gebunden werden, dadurch gekennzeichnet, dass der Linker im Maschinenprogramm eine Referenztabelle (19) ablegt, welche auf die Objektdateien mit den für ein Debugging benötigten Symbolinformationen (11a, 11b) verweist.Method for generating a debugging-capable machine program from a programming high-level language, wherein with the aid of a compiler at least one object file is generated from at least one source code which contains the symbol information required for debugging ( 11a . 11b ) and wherein with the aid of a linker ( 12 ) the object files to the machine program ( 13 . 14 . 18 . 19 ), characterized in that the linker in the machine program has a reference table ( 19 ), which points to the object files with the symbol information needed for debugging ( 11a . 11b ). Verfahren zum Debugging eines in einem Verfahren nach Anspruch 1 erzeugten Maschinenprogramms, dadurch gekennzeichnet, dass ein Debugging-Programm (20) während der Laufzeit die für ein Debugging benötigte Symbolinformation mit Hilfe der Referenztabelle (19) nur aus derjenigen Objektdatei lädt, in deren Kontext sich das Programm aktuell befindet.Method for debugging a machine program generated in a method according to claim 1, characterized in that a debugging program ( 20 ) at runtime the symbol information required for debugging using the reference table ( 19 ) loads only from the object file in whose context the program is currently located. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das Laden der für ein Debugging benötigten Symbolinformation über einen Cache-Mechanismus erfolgt.Method according to claim 2, characterized in that that loading the for needed a debugging Symbol information about a cache mechanism takes place.
DE1999154810 1999-11-13 1999-11-13 Method for generating and debugging a machine program Expired - Fee Related DE19954810B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1999154810 DE19954810B4 (en) 1999-11-13 1999-11-13 Method for generating and debugging a machine program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1999154810 DE19954810B4 (en) 1999-11-13 1999-11-13 Method for generating and debugging a machine program

Publications (2)

Publication Number Publication Date
DE19954810A1 DE19954810A1 (en) 2001-05-17
DE19954810B4 true DE19954810B4 (en) 2007-12-27

Family

ID=7929041

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999154810 Expired - Fee Related DE19954810B4 (en) 1999-11-13 1999-11-13 Method for generating and debugging a machine program

Country Status (1)

Country Link
DE (1) DE19954810B4 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10145783A1 (en) * 2001-09-17 2003-04-24 Giesecke & Devrient Gmbh Generate a troubleshooting message for a portable disk

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5371747A (en) * 1992-06-05 1994-12-06 Convex Computer Corporation Debugger program which includes correlation of computer program source code with optimized object code
US5854924A (en) * 1996-08-08 1998-12-29 Globetrotter Software, Inc. Static debugging tool and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5371747A (en) * 1992-06-05 1994-12-06 Convex Computer Corporation Debugger program which includes correlation of computer program source code with optimized object code
US5854924A (en) * 1996-08-08 1998-12-29 Globetrotter Software, Inc. Static debugging tool and method

Also Published As

Publication number Publication date
DE19954810A1 (en) 2001-05-17

Similar Documents

Publication Publication Date Title
DE69924857T2 (en) PROGRAM CODE CONVERSION
WO1994022079A1 (en) Process for the machine-generation of secondarily processable command groups from a program for super-scalar microprocessors
DE19855806A1 (en) Device for execution of sub routines and jump operations in computer
WO1994014117A1 (en) Process for testing at least one class of an object-oriented program on a computer
DE19524402C2 (en) Program execution control device with addressability according to an M-row pseudo-random number sequence
EP1079307B1 (en) Method for operating a memory system as well as memory system
DE2246863A1 (en) PROCEDURE AND ARRANGEMENT FOR LOGGING THE PROGRAM RUN IN DATA PROCESSING SYSTEMS
DE19954810B4 (en) Method for generating and debugging a machine program
DE2854400A1 (en) ARRANGEMENT FOR CHANGING BETWEEN TOOTHED PROGRAMS TO BE PROCESSED
DE2245284A1 (en) DATA PROCESSING SYSTEM
DE60225464T2 (en) ROBOT SYSTEM AND METHOD AND SOFTWARE FOR THE ROBOT SYSTEM
EP0575413B1 (en) Process for the machine production of a program to be made up of several modules
DE102009009172B4 (en) Mapping addresses of a program code and addresses of data in a memory
DE2242009C2 (en) Method and arrangement for recognizing whether branch operations provided in the microprogram of a data processing system are being carried out
DE102010011583B4 (en) A method of translating commands with base register relative addressing on an emulation
EP0662226B1 (en) Method of processing an application program on a parallel-computer system
DE19617842A1 (en) Code transformation method
DE2939194A1 (en) Monitoring system for complex program functioning - checks for presence of marked sub-program branch points
EP0560342B1 (en) Method for debugging HDL-programs
DE102022207611A1 (en) Computer-implemented method for verifying a software component of an automated driving function
EP0996888B1 (en) Method and data processing system for testing an assembler program for transferability
DE102004056006B3 (en) Emulation system for source data processor with program containing source code and output block frequently outputting data signals in source code to target code blocks using data table
DE10308867B4 (en) Method for addressing address spaces when emulating a program created for an emulated processor on an emulating processor
CH631820A5 (en) Method and arrangement for dealing with interrupt requests in a multi-programmable data processing system
DE19954793A1 (en) Compiling machine program involves re-compiling only these source text data files using changed Include data files and those source text data files that have been changed

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: TENOVIS GMBH & CO. KG, 60326 FRANKFURT, DE

8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee