DE102022104010A1 - Method and monitoring system for monitoring an operating state of an application that is operated in a control unit of a motor vehicle - Google Patents
Method and monitoring system for monitoring an operating state of an application that is operated in a control unit of a motor vehicle Download PDFInfo
- Publication number
- DE102022104010A1 DE102022104010A1 DE102022104010.0A DE102022104010A DE102022104010A1 DE 102022104010 A1 DE102022104010 A1 DE 102022104010A1 DE 102022104010 A DE102022104010 A DE 102022104010A DE 102022104010 A1 DE102022104010 A1 DE 102022104010A1
- Authority
- DE
- Germany
- Prior art keywords
- symbol
- application
- program code
- control unit
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Abstract
Die Erfindung betrifft ein Verfahren zum Überwachen eines Betriebszustands (32) einer Applikation, die in einem Steuergerät (12) eines Kraftfahrzeugs (11) betrieben wird, wobei ein symbolfreier Programmcode (13) der Applikation in dem Steuergerät (12) frei von einer Symboltabelle (22) bereitgestellt wird und falls in dem Steuergerät (12) ein Sammelmodul (27) ein vorbestimmtes Auslöseereignis detektiert, durch das Sammelmodul (27) rohe Speicherzustandsdaten (26), die Speicheradressen (35) aus dem symbolfreien Programmcode der Applikation beschreiben, ermittelt und an einen fahrzeugexternen Überwachungsserver (23) ausgesendet werden, und der Überwachungsserver (23) die rohen Speicherzustandsdaten (26) empfängt und mittels zumindest einer in dem Überwachungsserver (23) bereitgestellten Symboltabelle (22) in decodierte Speicherzustandsdaten (30), in welchen den Speicheradressen (35) ein jeweiliges Symbol (38) aus einem Quellcode (15) zugeordnet ist oder durch dieses ersetzt ist, umwandelt und mittels der decodierten Speicherzustandsdaten (30) zumindest eine vorbestimmte Analysemaßnahme (31) steuert.The invention relates to a method for monitoring an operating state (32) of an application that is operated in a control unit (12) of a motor vehicle (11), a symbol-free program code (13) of the application in the control unit (12) being free of a symbol table ( 22) is provided and if a collection module (27) detects a predetermined triggering event in the control unit (12), the collection module (27) determines raw memory state data (26) that describe memory addresses (35) from the symbol-free program code of the application and transmits them are sent out to a vehicle-external monitoring server (23), and the monitoring server (23) receives the raw memory state data (26) and, by means of at least one symbol table (22) provided in the monitoring server (23), converts it into decoded memory state data (30) in which the memory addresses (35 ) a respective symbol (38) from a source code (15) is assigned or replaced by this, converts and controls at least one predetermined analysis measure (31) by means of the decoded memory state data (30).
Description
Die Erfindung betrifft ein Verfahren und ein Überwachungssystem, mittels welchen der Betriebszustand zumindest einer Applikation (Anwendung) in zumindest einem Steuergerät eines oder mehrerer Kraftfahrzeuge überwacht werden kann. Der Programmcode solcher Applikationen in Steuergeräten muss sehr kompakt gehalten sein, um die geringen Speicherressourcen von Steuergeräten nicht unnötig auszulasten. Daher lassen sich im Programmcode von Applikationen in der Regel nur wenige oder gar keine sogenannte Debug-Informationen zum Analysieren von Laufzeitfehlern einer Applikation unterbringen.The invention relates to a method and a monitoring system by means of which the operating state of at least one application (application) can be monitored in at least one control unit of one or more motor vehicles. The program code of such applications in control units must be kept very compact in order not to unnecessarily overload the small memory resources of control units. For this reason, only little or no so-called debug information for analyzing runtime errors of an application can usually be accommodated in the program code of applications.
Ein Programmcode einer Applikation kann mit Symbolen (beispielsweise Zeichenfolgen) versehen werden, um beispielsweise Speicheradressen, an welche ein Programmpointer zum Ausführen einer Funktion springt, einem Funktionsnamen zuordnen zu können. Kommt es nach einem solchen Sprung zu einem Laufzeitfehler der Applikation, kann anhand des Symbols erkannt werden, wo im Quellcode der Fehler zu suchen ist. Dies vereinfacht die Fehlerbeseitigung. Auch ohne Laufzeitfehler kann es von Nutzen sein, zu überwachen, welche Funktionen in einer Applikation häufig aufgerufen werden und daher laufzeitkritisch sind. Um dies in einem kompilierten oder binären Programmcode erkennen zu können, sind ebenfalls die besagten Symbole notwendig, um Speicheradressen dahingehend lesen oder interpretieren zu können, zu welcher Funktion und Definition in einem Quellcode sie gehören.A program code of an application can be provided with symbols (for example character strings) in order to be able to assign a function name, for example, to memory addresses to which a program pointer jumps to execute a function. If a runtime error occurs in the application after such a jump, the symbol can be used to identify where the error is to be found in the source code. This simplifies troubleshooting. Even without runtime errors, it can be useful to monitor which functions in an application are called frequently and are therefore runtime-critical. In order to be able to recognize this in a compiled or binary program code, the said symbols are also necessary in order to be able to read or interpret memory addresses to which function and definition in a source code they belong.
Das Anreichern eines Programmcodes mit Symbolen vergrößert aber dessen Datenumfang oder sogenannten „Foot Print“ (Daten-Fußabdruck). Gerade in einem Steuergerät eines Kraftfahrzeugs ist aber verfügbarer Speicher eine kostspielige Ressource, die man nicht unnötig belasten oder belegen möchte.However, enriching a program code with symbols increases its data volume or so-called "footprint". In a motor vehicle control unit in particular, however, available memory is a costly resource that one does not want to unnecessarily burden or occupy.
Eine Laufzeitanalyse vorn Funktionen einer Applikation ist beispielsweise aus der
Die Nutzung von Symbolen zum Nachvollziehen eines Ablaufs eines binären Programmcodes anhand eines zugehörigen Quellcodes ist beispielsweise aus der
Der Erfindung liegt die Aufgabe zugrunde, beim Überwachen eines Betriebszustands einer Applikation in einem Steuergerät eines Kraftfahrzeugs den hierzu notwendigen Speicherbedarf im Steuergerät gering zu halten.The invention is based on the object, when monitoring an operating state of an application in a control unit of a motor vehicle, to keep the memory requirement in the control unit low for this purpose.
Die Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Vorteilhafte Weiterentwicklungen oder Weiterbildungen der Erfindung sind durch die abhängigen Patentansprüche, die folgende Beschreibung sowie die Figuren beschrieben.The object is solved by the subject matter of the independent patent claims. Advantageous further developments or developments of the invention are described by the dependent patent claims, the following description and the figures.
Als eine Lösung umfasst die Erfindung ein Verfahren zum Überwachen eines Betriebszustands einer Applikation, die in einem Steuergerät eines Kraftfahrzeugs betrieben wird. Unter einer Applikation wird hier eine Anwendung oder Funktionalität verstanden, die durch das Steuergerät auf Grundlage einer Software oder eines Programmcodes bereitgestellt wird, der in dem Steuergerät als maschinenlesbarer Code oder Binärcode oder in Maschinensprache vorhanden ist. Bei dem Verfahren wird in dem Steuergerät die Applikation als „symbolfreier Programmcode“ bereitgestellt, das heißt als ein Programmcode, der frei von einer sogenannten Symboltabelle ist, in welcher in einem Programmcode eine Zuordnung von Speicheradressen zu einem jeweiligen Symbol aus einem Quellcode vorgenommen werden kann, um in der beschriebenen Weise zu einer Speicheradresse beispielsweise einen Funktionsnamen einer Programmfunktion oder Variablennamen einer Variablen zu speichern, die an der Speicheradresse beginnt oder deren Einsprungadresse durch die Speicheradresse gegeben ist. Insbesondere ist ein Programmcode ohne Debug-Symboltabelle gemeint.As a solution, the invention includes a method for monitoring an operating state of an application that is operated in a control unit of a motor vehicle. An application is understood here as an application or functionality that is provided by the control unit on the basis of software or program code that is present in the control unit as machine-readable code or binary code or in machine language. In the method, the application is provided in the control unit as "symbol-free program code", i.e. as a program code that is free of a so-called symbol table, in which memory addresses can be assigned to a respective symbol from a source code in a program code, in order to store, for example, a function name of a program function or variable name of a variable that begins at the memory address or whose entry address is given by the memory address in the manner described for a memory address. In particular, a program code without a debug symbol table is meant.
In dem Verfahren ist vorgesehen, dass in dem Steuergerät ein Sammelmodul betrieben wird, das beispielsweise als Programmcode oder Software oder Routine eines Betriebssystems des Steuergeräts realisiert sein kann. Falls in dem Steuergerät das Sammelmodul ein vorbestimmtes Auslöseereignis detektiert, werden durch das Sammelmodul rohe Speicherzustandsdaten ermittelt, die Speicheradresse aus dem Programmcode der Applikation enthalten. Es kann sich um Speicheradressen handeln, die auf aktuell ausgeführte oder aktive Codebestandteile des in Ausführung befindlichen Programmcodes verweisen, z.B. um aktuell aufgerufene Programmfunktionen. Eine Verknüpfung mit einem zugehörigen Bestandteil eines Quellcodes des Programmcodes fehlt aufgrund der fehlenden Symbole aus dem Quellcode (Symbolfreiheit). Die Speicherzustandsdaten werden hier als „roh“ bezeichnet, um sie von den im Weiteren noch beschriebenen „dekodierten“ Speicherzustandsdaten zu unterscheiden. Die rohen Speicherzustandsdaten sind insbesondere symbolfrei, weil sie aus dem symbolfreien Programmcode gebildet sind. Bei den Speicherzustandsdaten kann es sich insbesondere um einen sogenannten Stack-Trace handeln, insbesondere um einen Stack aus Sprungadressen für rekursive Funktionsaufrufe.The method provides for a collection module to be operated in the control unit, which can be implemented, for example, as program code or software or a routine of an operating system of the control unit. If the collection module detects a predetermined triggering event in the control device, the collection module determines raw memory status data that contains the memory address from the program code of the application. They can be memory addresses that refer to currently executed or active code components of the program code that is being executed, e.g. to program functions that are currently called. A link to an associated part of a source code of the program code is missing due to the missing symbols from the source code (free of symbols). The memory state data is referred to here as “raw” in order to distinguish it from the “decoded” memory state data described below. In particular, the raw memory state data is symbol-free because it is formed from the symbol-free program code. The memory status data can in particular be what is known as a stack trace, in particular a stack of jump addresses for recursive function calls.
Die rohen Speicherzustandsdaten werden durch das Sammelmodul an einen fahrzeugexternen Überwachungsserver ausgesendet. In der beschriebenen Weise sind die rohen Speicherzustandsdaten insbesondere nicht dahingehend lesbar oder dahingehend unlesbar, dass eine Zuordnung der Speicheradressen zu Funktionsnamen oder Variablenamen unmöglich ist, wie sie in einem Quellcode verwendet wurden, auf welchen der symbolfreie Programmcode beruht. Der Überwachungsserver kann beispielsweise als ein Cloud-Server oder Backend-Server des Kraftfahrzeugs realisiert sein. Der Überwachungsserver empfängt die rohen Speicherzustandsdaten.The raw memory state data is sent by the collection module to an off-board Monitoring server sent out. In the manner described, the raw memory state data is not readable or illegible to the extent that it is impossible to assign the memory addresses to function names or variable names as used in a source code on which the symbol-free program code is based. The monitoring server can be implemented, for example, as a cloud server or backend server of the motor vehicle. The monitoring server receives the raw storage state data.
Um die rohen Speicherzustandsdaten mit einem Quellecode der Applikation in Beziehung setzen zu können, ist in dem Überwachungsserver zumindest eine Symboltabelle bereitgestellt, mittels welcher im Überwachungsserver die empfangenen rohen Speicherzustandsdaten in die besagten decodierten Speicherzustandsdaten umwandelt werden. Die decodierten Speicherzustandsdaten unterscheiden sich von den rohen Speicherzustandsdaten dahingehend, dass sie zusätzlich oder alternativ die Symbole angeben, das heißt in den decodierten Speicherzustandsdaten ist den besagten Speicheradressen jeweils ein Symbol zugeordnet oder durch dieses ersetzt. Ein solches Symbol kann in der beschriebenen Weise beispielsweise eine Zeichenkette sein, die beispielsweise einen Funktionsnamen (z.B. „_main“) oder Variablennamen angeben kann. Insbesondere ist ein jeweiliges Symbol aus einem Quellcode der Applikation vorgesehen.In order to be able to relate the raw memory state data to a source code of the application, at least one symbol table is provided in the monitoring server, by means of which the received raw memory state data is converted into said decoded memory state data in the monitoring server. The decoded memory state data differ from the raw memory state data in that they additionally or alternatively indicate the symbols, ie in the decoded memory state data the said memory addresses are each assigned a symbol or replaced by one. Such a symbol can be a character string in the manner described, for example, which can specify a function name (e.g. "_main") or variable name. In particular, a respective symbol from a source code of the application is provided.
Obwohl also in dem Steuergerät ein symbolfreier Programmcode der Applikation betrieben wird, ist anschließend in dem Überwachungsserver dennoch mittels der decodierten Speicherzustandsdaten erkennbar oder beschrieben, welches Symbol zu der jeweiligen Speicheradresse aus den rohen Speicherzustandsdaten gehört. Mittels der decodierten Speicherzustandsdaten steuert dann der Überwachungsserver zumindest eine Analysemaßnahme.Although a symbol-free program code of the application is operated in the control unit, the decoded memory state data can then be used in the monitoring server to identify or describe which symbol belongs to the respective memory address from the raw memory state data. The monitoring server then controls at least one analysis measure using the decoded memory status data.
Durch die Erfindung wird also mittels des Überwachungsservers außerhalb des Kraftfahrzeugs ein Mapping-Algorithmus auf der Grundlage zumindest einer Symboltabelle bereitgestellt, um die Speicheradressen, die aus dem Steuergerät als rohe Speicherzustandsdaten empfangen wurden, auf ein jeweiliges Symbol abzubilden und damit die Speicherzustandsdaten „lesbar“ oder interpretierbar oder auf einen Quellcode der Applikation übertragbar zu machen.The invention therefore uses the monitoring server outside the motor vehicle to provide a mapping algorithm based on at least one symbol table in order to map the memory addresses received from the control unit as raw memory state data to a respective symbol and thus make the memory state data “readable” or interpretable or transferable to a source code of the application.
Durch die Erfindung ergibt sich der Vorteil, dass in einem Steuergerät ein Programmcode symbolfrei bereitgestellt oder betrieben werden kann und damit den beschriebenen geringen Fußabdruck in Bezug auf den Speicherbedarf aufweist, und dennoch außerhalb des Kraftfahrzeugs mittels des Überwachungsservers die decodierten Speicherzustandsdaten mit Angaben eines jeweiligen Symbols der Speicheradresse verfügbar gemacht werden können und damit die zumindest eine Analysemaßnahme gesteuert werden kann.The invention has the advantage that a program code can be provided or operated in a control unit without symbols and thus has the small footprint described in terms of memory requirements, and yet the decoded memory status data with information on a respective symbol of the Memory address can be made available and thus the at least one analysis measure can be controlled.
Zu der Erfindung gehören auch Weiterbildungen oder Weiterentwicklungen, durch die sich zusätzliche Vorteile ergeben.The invention also includes developments or further developments that result in additional advantages.
Da der symbolfreie Programmcode im Steuergerät einerseits und die Symboltabelle im Überwachungsserver andererseits zueinander korrespondieren oder passen müssen, sieht eine Weiterentwicklung vor, eine Asynchronität oder eine Fehlerquelle aufgrund von Versionsunterschieden zu vermeiden. Hierzu erzeugt ein Entwicklungssystem, das beispielsweise einen oder mehrere Computer in einem zum Beispiel Entwicklungslabor umfassen kann, aus einem Quellcode der Applikation mittels eines Compilers und/oder Linkers einen vollständigen Programmcode der Applikation. Mit „vollständiger Programmcode“ ist die an sich bekannte Version oder Ausgestaltung eines Programmcodes mit den besagten Symbolen gemeint. Der vollständige Programmcode ist somit Symbolen ausgestattet Insbesondere ist eine Programmcode mit Debug-Symboltabelle gemeint. Daraus wird mittels eines sogenannten Strip-Prozesses, wie er beispielsweise mittels der Software „strip“ bereitgestellt werden kann, den besagten symbolfreien Programmcode für das Steuergerät und überträgt diesen auch an das Steuergerät. Den vollständigen Programmcode übermittelt das Entwicklungssystem dagegen an den Überwachungsserver. Zusätzlich oder alternativ zum Übermitteln des vollständigen Programmcodes wird die zumindest eine aus dem vollständigen Programmcode ausgelesene Symboltabelle an den Überwachungsserver übermittelt. Damit hält das Entwicklungssystem den symbolfreien Programmcode im Steuergerät und die Symboltabelle im Überwachungsserver versionssynchron, das heißt beide sind auf denselben Quellcode zurückzuführen. Damit wird vermieden, dass eine veraltete oder falsche Symboltabelle zum Erzeugen der decodierten Speicherzustandsdaten verwendet wird. Der vollständige Programmcode ist in der besagten Weise größer oder umfasst eine größere Datenmenge als der symbolfreie Programmcode, weshalb der besagte Speicher-Fußabdruck des symbolfreien Programmcodes geringer ist und damit in vorteilhafter Weise weniger Speicherressourcen im Steuergerät benötigt oder in Anspruch nimmt.Since the symbol-free program code in the control unit on the one hand and the symbol table in the monitoring server on the other hand must correspond or match one another, a further development provides for avoiding asynchronism or a source of error due to version differences. To this end, a development system, which can include one or more computers in a development laboratory, for example, generates a complete program code for the application from a source code for the application using a compiler and/or linker. "Complete program code" means the known version or embodiment of a program code with the said symbols. The complete program code is thus equipped with symbols In particular, a program code with a debug symbol table is meant. Using a so-called strip process, such as that which can be provided using the “strip” software, for example, the said symbol-free program code for the control unit is derived from this and also transmits this to the control unit. The development system, on the other hand, transmits the complete program code to the monitoring server. In addition or as an alternative to the transmission of the complete program code, the at least one symbol table read from the complete program code is transmitted to the monitoring server. In this way, the development system keeps the symbol-free program code in the control unit and the symbol table in the monitoring server version-synchronous, i.e. both can be traced back to the same source code. This avoids using an outdated or incorrect symbol table to generate the decoded memory state data. The complete program code is larger in the aforesaid manner or includes a larger amount of data than the symbol-free program code, which is why the said memory footprint of the symbol-free program code is smaller and thus advantageously requires or uses fewer memory resources in the control unit.
Bei den Speicherzustandsdaten handelt es sich insbesondere um Laufzeitdaten, wie sie in einem volatilen Speicher oder RAM (Random Access Memory) des Steuergeräts während des Betriebs der Applikation vorhanden sein können. In den Speicherzustandsdaten werden gemäß einer Weiterbildung als Speicheradressen solche aus einem Speicherabbild und/oder eines Stack-Traces gesammelt. Ein „Stack-Trace“ gibt an, welche Programmfunktionen der Applikation aktuell mit welchen Parameterwerten aufgerufen worden waren, als die Speicheradressen ausgelesen wurden. Somit können der aktuelle Betriebszustand und die Werte von Variablen und Funktionsparametern anhand der Speicherzustandsdaten gelesen werden und hierbei mittels der decodierten Speicherzustandsdaten eine Zuordnung zu Elementen oder Abschnitten im Quellcode ermöglicht oder durchgeführt werden.The memory state data is, in particular, runtime data such as may be present in a volatile memory or RAM (Random Access Memory) of the control device during operation of the application. In the memory state data according to a Development as memory addresses such collected from a memory image and / or a stack trace. A "stack trace" indicates which program functions of the application were currently called with which parameter values when the memory addresses were read out. Thus, the current operating state and the values of variables and function parameters can be read using the memory state data and an assignment to elements or sections in the source code can be made possible or carried out using the decoded memory state data.
Besonders bevorzugt wird als Symboltabelle eine Debug-Symboltabelle mit Debug-Symbolen verwendet. Hierdurch kann eine Fehlersuche im Falle eines Laufzeitfehlers der Applikation unterstützt oder durchgeführt werden. Es kann eine Debug-Symboltabelle sein, wie sie aus einem vollständige Programmcode durch die Software „strip“ entfernt werden würde.A debug symbol table with debug symbols is particularly preferably used as the symbol table. This can be used to support or carry out troubleshooting in the event of a runtime error in the application. It can be a debug symbol table, such as would be removed from full program code by the "strip" software.
Entsprechend sieht eine Weiterentwicklung vor, dass das zumindest eine Auslöseereignis, auf das hin das Sammelmodul die rohen Speicherzustandsdaten ermittelt oder sammelt, entsprechend umfasst, dass das Sammelmodul ein Fehlersignal aus der Applikation empfängt. Somit kann die Applikation dem Sammelmodul signalisieren, dass ein Laufzeitfehler und/oder ein Fehler in Bezug auf Parameter oder Variablen vorliegen. Zusätzlich oder alternativ zu einem Fehlersignal aus der Applikation ist vorgesehen, dass das Auslösesignal ein Fehlersignal aus einem die Applikation ausführenden Betriebssystem empfängt. Ein solches Betriebssystem kann auch dann noch in vorteilhafter Weise ein Fehlersignal erzeugen, wenn die Applikation selbst „abgestürzt“ ist, also das Ausführen des symbolfreien Programmcodes aufgrund eines Fehlers angehalten oder unterbrochen wurde. Zusätzlich oder alternativ dazu kann als Auslöseereignis vorgesehen sein, dass das Sammelmodul ein Fehlersignal aus einer Watchdog-Funktion des Steuergeräts empfängt. Eine solche Watchdog-Funktion erwartet aus der Applikation zu vorbestimmten Zeitpunkten eine Nachricht oder ein Signal, welches ein Hinweis dafür ist, dass die Applikation noch bestimmungsgemäß läuft oder überhaupt läuft. Eine Watchdog-Funktion kann beispielsweise auch hardwarebasiert unabhängig von einem Betriebssystem des Steuergeräts ablaufen. Das Fehlersignal beschreibt in der bereits beschriebenen Weise einen fehlerhaften Betriebszustand der Applikation, beispielsweise eine Verletzung bei einem Speicherzugriff und/oder eine Auslastung einer CPU des Steuergeräts über einen vorbestimmten Grenzwert, was beispielsweise auf eine sogenannte Endlosschleife und damit auf einen Programmierfehler hindeuten kann. Ein fehlerhaften Betriebszustand kann z.B. sein, dass der symbolfreie Programcode auf eine nicht-zulässige Speicheradresse zuzugreifen versucht, z.B. mit einem sogenannten Null-Pointer.Accordingly, a further development provides that the at least one triggering event upon which the collection module determines or collects the raw memory state data accordingly includes the collection module receiving an error signal from the application. The application can thus signal to the collection module that there is a runtime error and/or an error in relation to parameters or variables. In addition or as an alternative to an error signal from the application, it is provided that the trigger signal receives an error signal from an operating system executing the application. Such an operating system can also advantageously generate an error signal when the application itself has “crashed”, ie the execution of the symbol-free program code has been stopped or interrupted due to an error. In addition or as an alternative to this, it can be provided as a triggering event that the collecting module receives an error signal from a watchdog function of the control device. Such a watchdog function expects a message or a signal from the application at predetermined times, which is an indication that the application is still running as intended or is running at all. A watchdog function can also run on a hardware basis, for example, independently of an operating system of the control unit. In the manner already described, the error signal describes an incorrect operating state of the application, for example a violation during a memory access and/or the utilization of a CPU of the control unit above a predetermined limit value, which can indicate, for example, a so-called endless loop and thus a programming error. An incorrect operating state can be, for example, that the symbol-free program code tries to access an invalid memory address, e.g. with a so-called null pointer.
Die rohen Speicherzustandsdaten müssen aber nicht ausschließlich bei Vorhandensein eines fehlerhaften Betriebszustands der Applikation generiert werden. Mittels der Speicherzustandsdaten können auch vorteilsbringende Informationen über einen normalen Betrieb der Applikation ermittelt oder beschrieben werden. Eine Weiterentwicklung sieht daher vor, dass das zumindest eine Auslöseereignis umfasst, dass ein Timer für einen zyklischen Zustandsbericht über die Applikation abläuft. Ein solcher Zustandsbericht wird auch als Health-Report bezeichnet. Somit kann von dem Überwachungsserver aus überprüft werden, welche Speicheradressen und damit welche Symbole und damit welche Abschnitte im Quellcode eine Applikation nutzt oder ausführt, wodurch dann beispielsweise ermittelt werden kann, welcher Abschnitt im Programmcode und damit im Quellcode in Bezug beispielsweise auf die Laufzeit und/oder Speicherbelegung optimiert werden sollte. Das Kraftfahrzeug kann hierbei in der beschriebenen Weise von außerhalb mittels des Überwachungsservers in Bezug auf seine Ressourcenbelegung durch den symbolfreien Programmcode analysiert oder überwacht werden.However, the raw memory state data does not have to be generated exclusively in the presence of a faulty operating state of the application. Advantageous information about normal operation of the application can also be determined or described by means of the memory status data. A further development therefore provides that the at least one triggering event includes that a timer for a cyclic status report on the application expires. Such a status report is also referred to as a health report. It is thus possible to check from the monitoring server which memory addresses and thus which symbols and thus which sections in the source code an application uses or executes, which can then be used to determine, for example, which section in the program code and thus in the source code in relation to the runtime and/or or memory usage should be optimized. In this case, the motor vehicle can be analyzed or monitored in the manner described from outside by means of the monitoring server with regard to its resource allocation by the symbol-free program code.
Entsprechend sieht eine mögliche Analysemaßnahme gemäß einer Weiterentwicklung vor, dass die decodierten Speicherzustandsdaten mit den darin enthaltenen Symbolen über ein Anzeigesystem ausgegeben werden. Somit kann ein Operateur oder Entwickler anhand dieser Analysemaßnahme einen Einblick in den inneren Zustand des Kraftfahrzeugs, insbesondere des Steuergeräts, erhalten. Eine andere Bezeichnung für eine solche Anzeige eines Anzeigesystems ist auch „Dashboard“.Accordingly, a possible analysis measure according to a further development provides that the decoded memory status data with the symbols contained therein are output via a display system. An operator or developer can thus use this analysis measure to obtain an insight into the internal state of the motor vehicle, in particular the control unit. Another name for such a display of a display system is "dashboard".
Eine Weiterentwicklung sieht vor, dass die Analysemaßnahme, die auf die decodierten Speicherzustandsdaten angewendet wird oder von diesen gesteuert wird, ein Filter umfasst, das in den decodierten Speicherzustandsdaten nach einem vorbestimmten Symbol sucht. Mit anderen Worten wird durch das Filter überprüft, ob in den aktuell erzeugten decodierten Speicherzustandsdaten ein vorbestimmtes Symbol vorkommen, also beispielsweise eine entsprechende Funktion und/oder ein entsprechendes Speicherelement in dem symbolfreien Programmcode auf dem Steuergerät aktiv war oder genutzt wurde oder darauf zugegriffen wurde. Bei Auffinden des gesuchten Symbols durch das Filter wird eine Nachricht an eine vorbestimmte Empfängeradresse gesendet. Somit wird der Empfänger an der Empfängeradresse automatisiert darüber informiert, dass in dem Steuergerät eine Speicheradresse benutzt oder aufgegriffen oder darauf zugegriffen wurde, zu der das vorbestimmte Symbol gehört. So kann beispielsweise der Aufruf einer bestimmten Funktion oder die Nutzung eines bestimmten Speicherinhalts einer Variablen, die mit dem Symbol bezeichnet ist, an die Empfängeradresse automatisiert gemeldet werden. Hierdurch kann beispielsweise ein Entwickler darüber informiert werden, dass eine bestimmte Funktion in dem Steuergerät aufgerufen oder genutzt wurde.A further development provides that the analysis measure, which is applied to the decoded memory state data or is controlled by it, comprises a filter which searches for a predetermined symbol in the decoded memory state data. In other words, the filter checks whether a predetermined symbol occurs in the currently generated decoded memory state data, i.e. for example a corresponding function and/or a corresponding memory element in the symbol-free program code on the control unit was active or was used or was accessed. If the filter finds the symbol being searched for, a message is sent to a predetermined recipient address. The recipient is thus automatically informed at the recipient address that a memory address to which the predetermined symbol belongs has been used or taken up or accessed in the control device. For example, the call of a specific function or the use of a specific memory content of a variable marked with the symbol can be automatically reported to the recipient address. In this way, for example, a developer can be informed that a specific function has been called up or used in the control device.
Die Erfindung muss sich nicht auf die Überwachung einer einzelnen Applikation beschränken. In dem Steuergerät können auch mehrere Applikationen überwacht werden. Um hierbei effizient und mit geringem Speicherbedarf aller überwachten Applikationen zu sammeln, sieht eine Weiterentwicklung vor, dass der jeweilige symbolfreie Programmcode mehrerer Applikationen in dem Steuergerät ausgeführt wird, aber nur ein Sammelmodul vorgesehen ist, welches die rohen Speicherzustandsdaten jeder dieser Applikationen ermittelt und an den Überwachungsserver aussendet. Es wird also der Dienst oder die Funktionalität des Einsammelns der rohen Speicherzustandsdaten aus mehreren Applikationen in einem einzelnen Sammelmodul in dem Steuergerät konzentriert.The invention does not have to be limited to the monitoring of a single application. Several applications can also be monitored in the control unit. In order to collect all monitored applications efficiently and with low memory requirements, a further development provides that the respective symbol-free program code of several applications is executed in the control unit, but only one collection module is provided, which determines the raw memory status data of each of these applications and transmits them to the monitoring server emits. The service or the functionality of collecting the raw memory status data from a number of applications is therefore concentrated in a single collecting module in the control unit.
Die Erfindung umfasst auch ein Überwachungssystem für zumindest eine Applikation in zumindest einem Steuergerät. Handelt es sich um mehrere Steuergeräte, können diese in einem Kraftfahrzeug oder auf mehrere Kraftfahrzeuge verteilt angeordnet sein. Mit anderen Worten kann das Überwachungssystem eines oder mehrere Kraftfahrzeuge in Bezug auf die Betriebszustände von Applikationen in den Steuergeräten von Kraftfahrzeugen überwachen. Hierzu ist der beschriebene Überwachungsserver in dem Überwachungssystem bereitgestellt sowie für das jeweilige Steuergerät ein jeweiliges Sammelmodul, um die in dem jeweiligen Steuergerät anfallenden rohen Speicherzustandsdaten zu sammeln und an den Überwachungsserver zu übermitteln. Entsprechend ist das erfindungsgemäße Überwachungssystem dazu eingerichtet, eine Ausführungsform des erfindungsgemäßen Verfahrens auszuführen. Hierzu können das Sammelmodul selbst und eine Steuersoftware oder ein Betriebsprogramm des Überwachungssystems entsprechende Programminstruktionen aufweisen, die bei Ausführen durch das Sammelmodul beziehungsweise den Überwachungsserver dazu veranlassen, gemeinsam die Verfahrensschritte gemäß der Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Die Programminstruktionen können dazu in einem jeweiligen Datenspeicher des Steuergeräts (für das Sammelmodul) und des Überwachungsservers gespeichert sein. Der Überwachungsserver kann auf einem oder mehreren Mikroprozessoren beruhen, die mit dem Datenspeicher des Überwachungsservers gekoppelt sein können. Das Steuergerät kann ebenfalls einen oder mehrere Mikroprozessoren aufweisen, durch welche die zumindest eine Applikation (das heißt deren symbolfreier Programmcode) ausgeführt werden kann und durch welche zusätzlich das Sammelmodul betrieben werden kann oder ausgeführt werden kann.The invention also includes a monitoring system for at least one application in at least one control unit. If there are several control units, they can be arranged in one motor vehicle or distributed among several motor vehicles. In other words, the monitoring system can monitor one or more motor vehicles with regard to the operating states of applications in the control units of motor vehicles. For this purpose, the monitoring server described is provided in the monitoring system, as well as a respective collecting module for the respective control unit, in order to collect the raw memory status data occurring in the respective control unit and to transmit them to the monitoring server. Accordingly, the monitoring system according to the invention is set up to carry out an embodiment of the method according to the invention. For this purpose, the collection module itself and control software or an operating program of the monitoring system can have corresponding program instructions which, when executed by the collection module or the monitoring server, cause the method steps to be carried out together according to the embodiment of the method according to the invention. For this purpose, the program instructions can be stored in a respective data memory of the control device (for the collection module) and of the monitoring server. The monitoring server may be based on one or more microprocessors, which may be coupled to the data storage of the monitoring server. The control device can also have one or more microprocessors, by which the at least one application (ie its symbol-free program code) can be executed and by which the collection module can also be operated or executed.
Die Erfindung umfasst auch die Kombinationen der Merkmale der beschriebenen Ausführungsformen.The invention also includes the combinations of features of the described embodiments.
Im Folgenden werden Implementierungsbeispiele der Erfindung beschrieben. Hierzu zeigt:
-
1 eine schematische Darstellung einer Ausführungsform des erfindungsgemäßen Überwachungssystems; und -
2 eine Skizze zur Veranschaulichung eines Mapping-Algorithmus, mittels welchem rohe Speicherzustandsdaten in decodierte Speicherzustandsdaten umgewandelt oder darauf abgebildet werden.
-
1 a schematic representation of an embodiment of the monitoring system according to the invention; and -
2 a sketch to illustrate a mapping algorithm by means of which raw memory state data is converted into decoded memory state data or mapped onto it.
Bei den im Folgenden erläuterten Ausführungsbeispielen handelt es sich um bevorzugte Ausführungsbeispiele der Erfindung. Bei den Ausführungsbeispielen stellen die beschriebenen Komponenten jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden und damit auch einzeln oder in einer anderen als der gezeigten Kombination als Bestandteil der Erfindung anzusehen sind. Des Weiteren sind die beschriebenen Ausführungsbeispiele auch durch weitere der bereits beschriebenen Merkmale der Erfindung ergänzbar.The exemplary embodiments explained below are preferred exemplary embodiments of the invention. In the exemplary embodiments, the described components each represent individual features of the invention to be considered independently of one another, which also develop the invention independently of one another and are therefore also to be regarded as part of the invention individually or in a combination other than that shown. Furthermore, the exemplary embodiments described can also be supplemented by further features of the invention already described.
In den Figuren sind funktionsgleiche Elemente jeweils mit denselben Bezugszeichen versehen.Elements with the same function are each provided with the same reference symbols in the figures.
Das Steuergerät 12 kann ein Embedded-System in dem Kraftfahrzeug 11 darstellen. In dem Steuergerät 12 kann auf einem Prozessorsystem oder SoC (System on Chip) eine jeweilige Applikation App1 bis App(n) betrieben oder ausgeführt werden, um in dem Kraftfahrzeug 11 zumindest eine Fahrzeugfunktion bereitzustellen. Beispielsweise kann durch eine Applikation ein Motor gesteuert werden und/oder ein Fensterheber und/oder eine Medienwiedergabe (beispielsweise Abspielen von MP3-Dateien), um nur Beispiele zu nennen. Damit in dem Steuergerät 12 die Applikationen wenig Datenspeicher in Anspruch nehmen, ist ihr jeweiliger Programmcode symbolfrei, das heißt jede der Applikationen ist in dem Steuergerät 12 durch einen symbolfreien Programmcode 13 implementiert, der keine Symboltabelle für Debug-Informationen aufweist, das heißt frei von einer solchen Symboltabelle ist. Dies kann in an sich bekannter Weise durch beispielsweise einen sogenannten Strip-Prozess oder ein Strip-Programm realisiert worden sein. Hierzu kann der symbolfreie Programmcode 13 beispielsweise in einem Labor oder bei einem Hersteller in einem Entwicklungssystem 14 durch Kompilieren eines jeweiligen Quellcodes 15 erzeugt worden sein. Zusätzlich oder alternativ zum Kompilieren kann auch ein Linken vorgesehen sein. Allgemein kann es sich also um einen Build-Agent 16 handeln, der zumindest einen Compiler 17 und/oder Linker 18 verwendet, um aus dem Quellcode 15 den jeweiligen symbolfreien Programmcode 13 zu erzeugen, der dann in dem Steuergerät 12 beispielsweise über eine Kommunikationsverbindung 19 installiert worden sein kann. Die Kommunikationsverbindung 19 kann beispielsweise beim Herstellen des Kraftfahrzeugs 11 und/oder beim Herstellen des Steuergeräts 12 kabelgebunden vorgesehen worden sein oder bei einer späteren Installation über eine Funkverbindung, die beispielsweise mittels Mobilfunk und/oder WLAN (Wireless Local Area Network) bereitgestellt worden sein kann. Durch den Build-Agent 16 kann die Debug-Symboltabelle, die zu dem jeweiligen symbolfreien Programmcode 13 gehört, mittels eines Extraktionsmoduls 21, also einer weiteren Software, extrahiert werden. Hierzu kann das vollständige Ergebnis des Kompilierens und/oder Linkens aus dem Compiler 17 und/oder Linker 18 als vollständiger Programmcode 20 dem Extraktionsmodul 21 bereitgestellt sein. Mit anderen Worten kann der vollständige Programmcode 20 den symbolfreien Programmcode 13 zuzüglich der Symboltabelle 22 umfassen. Die aus dem vollständigen Programmcode 20 extrahierte Symboltabelle 22 oder auch der vollständige Programmcode 20 selbst können an einen Überwachungsserver 23 übermittelt werden, der beispielsweise als eine Cloud 24 beispielsweise im Internet 25 betrieben werden kann. In dem Überwachungsserver 23 können somit die ausgelesene Symboltabelle 22 zur selben Version des vollständigen Programmcodes 20 bereitgestellt werden, zu dem auch der symbolfreie Programmcode 13 gehört oder aus welchem auch der symbolfreie Programmcode 13 erzeugt wurde.The
In dem Steuergerät 12 kann während dessen Betrieb beispielsweise während einer Fahrt des Kraftfahrzeugs 11 aus den Applikationen App1...App(n) Speicherzustandsdaten 26 extrahiert werden, wie es beispielsweise mittels eines sogenannten Stack-Trace in an sich bekannter Weise möglich ist. Es kann auch ein Speicherabbild des jeweils laufenden oder angehaltenen symbolfreien Programmcodes 13 als Speicherzustandsdaten 26 ermittelt werden. Diese können durch ein Sammelmodul 27 ermittelt werden und über eine Kommunikationsverbindung 28 an den Überwachungsserver 23 übermittelt werden. Die Kommunikationsverbindung 28 kann beispielsweise eine Internetverbindung und/oder eine Funkverbindung (Mobilfunk und/oder WLAN als Beispiel) übermittelt werden. Ein Mapping-Algorithmus 29 des Überwachungsservers 23 kann die Speicherzustandsdaten 26 mittels der Symboltabellen 22 zu decodierten Speicherzustandsdaten 30 erweitern oder anreichern, indem Speicheradressen, die in den Speicherzustandsdaten 26 angegeben sind, ein zugehöriges Symbol aus der Symboltabelle 22 zugeordnet wird oder in die decodierten Speicherzustandsdaten 30 geschrieben wird. Somit ergibt sich in den decodierten Speicherzustandsdaten 30 ein Speicherabbild oder eine Beschreibung eines Betriebszustands des jeweiligen Programmcodes 13, der mittels der Symbole mit dem zugehörigen Quellcode 15 verglichen oder korreliert werden kann, sodass beispielsweise bekannt ist, welche Funktion aus dem Quellcode 15 aktuell in dem symbolfreien Programmcode 13 ausgeführt wurde, als die Speicherzustandsdaten 26 ermittelt wurden. Mittels der decodierten Speicherzustandsdaten 30 kann dann zumindest eine Analysemaßnahme 31 gesteuert werden, beispielsweise können einem Entwickler die decodierten Speicherzustandsdaten visualisiert werden, beispielsweise als Plot oder Graph. Es kann auch beispielsweise die Entwicklung des Quellcodes 15 verbessert werden, indem mittels der decodierten Speicherzustandsdaten 30 eine lesbare oder in Bezug auf den Quellcode 15 interpretierbare Darstellung des symbolfreien Programmcodes 13 bereitgestellt wird und somit der Betriebszustand des Kraftfahrzeugs 11, insbesondere seines Steuergeräts 12, in Bezug auf den Quellcode 15 interpretierbar gemacht wird.In the
In der beschriebenen Weise kann der Quellcode 15 beispielsweise Funktionen main, fct1, fct2 aufweisen, durch welche die jeweilige Fahrzeugfunktion implementiert sein kann. Nach dem Kompilieren und/oder Linken mittels des Build-Agent 16 kann sich der vollständige Programmcode 20 ergeben, welcher zum einen den Binärcode oder Maschinencode 33 aufweisen kann, bei welchem beispielsweise Assembler-Befehle 34 an vorbestimmten Speicheradressen 35 relativ zu einer Bezugsadresse in an sich bekannter Weise beschrieben sind. Zusätzlich kann für die Speicheradressen das jeweilige Symbol für die zugehörige Funktion als Debug-Information 36 in einer Symboltabelle 22 gespeichert sein.In the manner described, the
Durch das Entfernen der Symboltabelle 22 ergibt sich der symbolfreie Programmcode 13, der lediglich der Maschinenbefehle des Maschinencodes 33 mit der beibehaltenen Zuordnung oder Anordnung an den Speicheradressen 35 aufweist. Durch den Extraktor 21 kann die Symboltabelle 22 gerettet oder erhalten werden und in der beschriebenen Weise an den Überwachungsserver 23 (in
Die Erfindung umfasst somit in eine besonders bevorzugten Ausführungsform drei Module, von denen sich eines in der Entwicklungsumgebung oder Build-Umgebung, eines in der Cloud und eines auf dem eingebetteten Gerät befindet. In einem normalen Produktionssystem werden die Artefakte (ausführbare Dateien, Bibliotheken usw.) von der Build-Umgebung erstellt. Um die Größe der Artefakte im Produktionssystem zu reduzieren, werden die Binärdateien von den Debug-Informationen befreit und auf der eingebetteten Hardware bereitgestellt. Diese werden als Release-Builds bezeichnet.In a particularly preferred embodiment, the invention thus comprises three modules, one of which is in the development environment or build environment, one in the cloud and one on the embedded device. In a normal production system, the artifacts (executables, libraries, etc.) are created by the build environment. To reduce the size of the artifacts in the production system, the binaries are stripped of the debug information and deployed to the embedded hardware. These are called release builds.
Die Aufzeichnung von Stack Traces auf dem Gerät liefert daher nur nicht interpretierbare Daten. Daher wird ein Modul im Build-Agenten benötigt, das die Debug-Informationen einer bestimmten Version der Anwendung generiert und in der Cloud speichert. Die in der Cloud gespeicherten Informationen enthalten eine Liste aller Debug-Symbole, den Anwendungsnamen und die Anwendungsversion.The recording of stack traces on the device therefore only provides uninterpretable data. Therefore, a module is needed in the build agent that generates the debug information of a specific version of the application and stores it in the cloud. The information stored in the cloud includes a list of all debug symbols, the application name and the application version.
Auf dem Embedded-Gerät zeichnet das stackTrace-Kollektormodul die Stack Traces aller auf dem Embedded-Gerät laufenden Anwendungen auf. In regelmäßigen Abständen werden die Stack Traces zusammen mit dem Anwendungsnamen und der Anwendungsversion an die Cloud gesendet.On the embedded device, the stackTrace collector module records the stack traces of all applications running on the embedded device. Periodically, the stack traces are sent to the cloud along with the application name and application version.
Der Mapping-Algorithmus in der Cloud verwendet den Anwendungsnamen und die Version, um die richtigen Debug-Informationen aus der Liste abzurufen, und dekodiert die Stack Traces in interpretierbare Daten. Diese Daten werden in einem Dashboard dargestellt, das z.B. Histogramme und/oder Flamegraphs und/oder Plots enthalten kann, die für detaillierte CPU-Analysen von Anwendungen verwendet werden können. Es kann von den Anwendungsentwicklern zur Optimierung/Überwachung der Leistung von Anwendungen verwendet werden.The mapping algorithm in the cloud uses the application name and version to get the correct debug information from the list and decodes the stack traces into interpretable data. This data is presented in a dashboard that can contain e.g. histograms and/or flamegraphs and/or plots that can be used for detailed CPU analysis of applications. It can be used by the application developers to optimize/monitor the performance of applications.
Durch die Beispiele ist gezeigt, wie ein Debugging eines Embedded-Device eines Kraftfahrzeugs von einem Überwachungsserver aus ermöglicht werden kann.The examples show how an embedded device of a motor vehicle can be debugged from a monitoring server.
BezugszeichenlisteReference List
- 1010
- Überwachungssystemsurveillance system
- 1111
- Kraftfahrzeugmotor vehicle
- 1212
- Steuergerätcontrol unit
- 1313
- symbolfreier Programmcodesymbol-free program code
- 1414
- Entwicklungssystemdevelopment system
- 1515
- QuellcodeSource code
- 1616
- Build-Agentbuild agent
- 1717
- Compilercompiler
- 1818
- Linkerleftist
- 2020
- vollständiger Programmcodecomplete program code
- 2121
- Extraktionsmodulsextraction module
- 2222
- Symboltabellesymbol table
- 2323
- Überwachungsservermonitoring server
- 2424
- Cloudcloud
- 2525
- InternetInternet
- 2626
- rohe Speicherzustandsdatenraw memory state data
- 2727
- Sammelmodulcollection module
- 2828
- Kommunikationsverbindungcommunication link
- 2929
- Mapping-Algorithmusmapping algorithm
- 3030
- decodierte Speicherzustandsdatendecoded memory state data
- 3131
- Analysemaßnahmeanalysis measure
- 3232
- Betriebszustandoperating condition
- 3333
- Maschinencodemachine code
- 3434
- Assembler-Befehleassembler commands
- 3535
- Speicheradressememory address
- 3636
- Debug-Informationdebug information
- 3737
- Call-Stackcall stack
- 3838
- Symbolsymbol
- 3939
- symbolischer Call-Stacksymbolic call stack
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent Literature Cited
- US 9104805 B1 [0004]US9104805B1 [0004]
- US 10521331 B1 [0005]US10521331B1 [0005]
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022104010.0A DE102022104010A1 (en) | 2022-02-21 | 2022-02-21 | Method and monitoring system for monitoring an operating state of an application that is operated in a control unit of a motor vehicle |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022104010.0A DE102022104010A1 (en) | 2022-02-21 | 2022-02-21 | Method and monitoring system for monitoring an operating state of an application that is operated in a control unit of a motor vehicle |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102022104010A1 true DE102022104010A1 (en) | 2023-08-24 |
Family
ID=87518948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102022104010.0A Pending DE102022104010A1 (en) | 2022-02-21 | 2022-02-21 | Method and monitoring system for monitoring an operating state of an application that is operated in a control unit of a motor vehicle |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102022104010A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104805B1 (en) | 2003-12-10 | 2015-08-11 | The Mathworks, Inc. | Method for using a graphical debugging tool |
US10521331B1 (en) | 2018-08-31 | 2019-12-31 | The Mitre Corporation | Systems and methods for declarative specification, detection, and evaluation of happened-before relationships |
-
2022
- 2022-02-21 DE DE102022104010.0A patent/DE102022104010A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104805B1 (en) | 2003-12-10 | 2015-08-11 | The Mathworks, Inc. | Method for using a graphical debugging tool |
US10521331B1 (en) | 2018-08-31 | 2019-12-31 | The Mitre Corporation | Systems and methods for declarative specification, detection, and evaluation of happened-before relationships |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60130840T2 (en) | Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs | |
DE10050684B4 (en) | Method and system for periodic tracing for call sequences between routines | |
DE102011008211A1 (en) | Error prediction framework using time data mining | |
DE102006029138A9 (en) | Method and computer program product for the detection of memory leaks | |
DE112012004247T5 (en) | Passively monitoring virtual systems using extensible indexing | |
DE112011100168B4 (en) | Capturing diagnostic data in a data processing environment | |
DE112014002877T5 (en) | Passively monitor virtual machines using agent-independent, near real-time indexing | |
DE102022104010A1 (en) | Method and monitoring system for monitoring an operating state of an application that is operated in a control unit of a motor vehicle | |
WO2002084491A2 (en) | Method for determining and recording system information and function in distributed parallel component based software systems | |
DE102010009994A1 (en) | Method for optimizing a control program for actuators | |
WO2005022382A2 (en) | Method for the installation of a program component | |
DE102012210482A1 (en) | Method and system for migrating business process instances | |
DE102022126423A1 (en) | CLOUD-BASED PLATFORM SERVER FOR ANALYZING, REPORTING AND RESPONDING TO VEHICLE DTC DATA | |
DE102020213809A1 (en) | Method for operating a control device when testing software in the control device and method for operating a test computer when testing software in a control device | |
EP3872661A1 (en) | Analysis of a container instance of an operating system | |
DE102019202870A1 (en) | Parallelization method, parallelization tool and multi-core microcomputer | |
DE102022002450A1 (en) | Method for processing log files, data processing system and vehicle | |
DE102022111836A1 (en) | Method and motor vehicle control device for operating a container virtualization with logging function and computer-readable storage medium | |
DE102011052511A1 (en) | Method for processing data in an influencing device | |
DE102022122008A1 (en) | Processor circuit for collecting logging records from multiple control circuits in a data pool, associated operating method for the processor circuit, system for collecting logging records, and computer-readable storage medium | |
DE102009038177A1 (en) | Method for dynamically activating back trace of sub program in computer system, involves registering inflow in sub program through back trace module, and allowing program control flow to return back to sub program | |
EP4036739A1 (en) | Fault susceptibility of a build pipeline | |
DE102022113112A1 (en) | Method and system for collecting data for vehicles | |
DE102022115532A1 (en) | COMPUTER-IMPLEMENTED METHOD, COMPUTER PROGRAM AND/OR COMPUTER-READABLE MEDIUM AND DATA PROCESSING DEVICE | |
DE102022206900A1 (en) | Method for testing a computer program in several compositions of computer program modules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |