RU2393530C2 - Method for formation of dump file - Google Patents
Method for formation of dump file Download PDFInfo
- Publication number
- RU2393530C2 RU2393530C2 RU2007115809/09A RU2007115809A RU2393530C2 RU 2393530 C2 RU2393530 C2 RU 2393530C2 RU 2007115809/09 A RU2007115809/09 A RU 2007115809/09A RU 2007115809 A RU2007115809 A RU 2007115809A RU 2393530 C2 RU2393530 C2 RU 2393530C2
- Authority
- RU
- Russia
- Prior art keywords
- program
- stack
- memory
- file
- area
- Prior art date
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Retry When Errors Occur (AREA)
Abstract
Description
Изобретение относится к компьютерным технологиям, а именно к системам и способам формирования дамп файла при возникновении сбоя в работе программы (аварийном завершении работы программы) в вычислительных системах с ограниченными ресурсами.The invention relates to computer technology, and in particular to systems and methods for generating a dump file when a program malfunctions (program terminates abnormally) in computing systems with limited resources.
Во время отладки и тестирования программы в ней может произойти сбой. В случае сбоя выполнения программы с помощью ядра операционной системы компьютера формируют так называемую дамп информацию: создают дамп файл ядра - моментальный снимок состояния программы в момент возникновения сбоя. Дамп файл помогает разработчику идентифицировать источник проблемы, повлекшей сбой программы. Функция дампа ядра изначально предназначена для серверов и рабочих станций, которые имеют большие объемы памяти и много запоминающих устройств.During debugging and testing the program, it may crash. In the event of a program execution failure using the kernel of the computer operating system, the so-called dump information is generated: a kernel file is dumped - a snapshot of the state of the program at the time the failure occurs. The dump file helps the developer identify the source of the problem that caused the program to crash. The core dump function is primarily intended for servers and workstations that have large amounts of memory and many storage devices.
Встроенные операционные системы компьютеров, как правило, имеют существенно меньший объем памяти и в них зачастую нет достаточно места для сохранения файлов дампа ядра. При таких условиях нельзя создать полные и исправные файлы дампа ядра.Embedded computer operating systems typically have significantly less memory and often do not have enough space to save core dump files. Under such conditions, it is impossible to create complete and serviceable core dump files.
Известны различные подходы к решению проблемы формирования дамп файла.There are various approaches to solving the problem of dump file formation.
В способе, приведенном в патенте США №7,010,725 [1], при возникновении сбоя в работе программы содержимое памяти (ядра) сохраняют в основную память компьютера и, в случае если размер дамп файла превышает размер основной памяти, часть дамп файла автоматически сохраняют на дополнительное запоминающее устройство, которое постоянно соединено с компьютером.In the method described in US patent No. 7,010,725 [1], if a program malfunction occurs, the contents of the memory (kernel) are stored in the main memory of the computer and, if the size of the dump file exceeds the size of the main memory, part of the dump file is automatically saved to additional storage A device that is permanently connected to a computer.
Недостаток данного способа заключается в необходимости наличия дополнительного запоминающего устройства, что увеличивает стоимость компьютера и усложняет выполнение способа.The disadvantage of this method is the need for an additional storage device, which increases the cost of the computer and complicates the implementation of the method.
Наиболее близким к заявленному изобретению является способ формирования дамп файла ядра, предложенный в патенте США №6,681,348 [2], в котором в случае возникновения сбоя в программе операционная система компьютера создает полный дамп файл ядра (дамп всей физической памяти компьютера). Затем из этого файла с помощью специального программного средства создают сокращенный, так называемый «мини дамп файл», который включает в себя справочные сведения, структуру данных потока, структуру данных стека (регистры процессора), структуру данных процесса, список загруженных модулей и информационный блок управления памятью компьютера. Данный способ выбран в качестве прототипа заявленного изобретения.Closest to the claimed invention is a method of generating a core file dump, proposed in US patent No. 6,681,348 [2], in which in case of a malfunction in the program, the computer operating system creates a full core file dump (dump of the entire physical memory of the computer). Then, from this file, using a special software tool, an abbreviated so-called “mini dump file" is created, which includes reference information, the structure of the stream data, the structure of the stack data (processor registers), the structure of the process data, the list of loaded modules and the information control unit computer memory. This method is selected as a prototype of the claimed invention.
Недостатком способа-прототипа является то, что он не учитывает особенностей встраиваемых систем компьютеров с ограниченными ресурсами, а именно с ограниченным объемом памяти, в которых полный дамп файл ядра не может быть весь сохранен в памяти компьютера, а следовательно, не может быть создан и мини дамп файл ядра. Кроме того, согласно способу-прототипу в мини дамп файл не заносят содержимое стеков программы, в которой произошел сбой, хотя такие данные являются важными для анализа причин сбоя программы. Указанные недостатки ухудшают функциональность способа-прототипа [2].The disadvantage of the prototype method is that it does not take into account the features of embedded systems of computers with limited resources, namely with a limited amount of memory, in which a complete core file cannot be completely saved in the computer’s memory, and therefore, a mini core dump file. In addition, according to the prototype method, the contents of the stacks of the program in which the failure occurred are not recorded in the mini dump file, although such data is important for analyzing the causes of the failure of the program. These shortcomings worsen the functionality of the prototype method [2].
Задачей заявленного изобретения является создание системы и способа формирования дамп файла с уменьшенной стоимостью, сложностью выполнения и увеличенными функциональными возможностями за счет создания дамп файла уменьшенного размера, при этом сохранения в нем только наиболее важной информации, которая описывает непосредственно сбой программы, и не включения в дамп файл информации, содержащейся в дополнительных областях памяти.The objective of the claimed invention is to provide a system and method for generating a dump file with reduced cost, complexity of execution and increased functionality by creating a dump file of a reduced size, while storing in it only the most important information that describes the program crash directly and not including it in the dump file of information contained in additional memory areas.
Поставленная задача решена путем создания способа формирования дамп файла ядра при возникновении сбоя в работе программы, выполняемой на компьютере, который включает в себя следующие операцииThe problem is solved by creating a method of dumping the kernel file in the event of a malfunction in the program running on the computer, which includes the following operations
- определяют все области памяти, которые использует программа в момент возникновения сбоя;- determine all the areas of memory that the program uses at the time of the failure;
- создают мгновенный снимок состояния регистров центрального процессора в момент возникновения сбоя в программе;- create a snapshot of the state of the registers of the central processor at the time of a failure in the program;
- формируют заголовок дамп файла, при этом используют данные мгновенного снимка состояния регистров центрального процессора;- form the header of the dump file, while using data of a snapshot of the status of the registers of the central processor;
- определяют во всех областях памяти область, которая содержит стек программы;- determine in all areas of memory the area that contains the program stack;
- определяют значение указателя начала стека программы, при этом используют мгновенный снимок регистров процессора;- determine the value of the pointer to the beginning of the program stack, while using a snapshot of the processor registers;
- уменьшают в памяти область, которая содержит стек программы, при этом многократно сдвигают начальный адрес данной области памяти в направлении указателя начала стека;- reduce the memory area that contains the program stack, while repeatedly shifting the start address of this memory area in the direction of the pointer to the beginning of the stack;
- сохраняют уменьшенную область памяти, которая содержит стек программы;- save the reduced memory area that contains the program stack;
- формируют итоговый файл, при этом сохраняют в нем данные мгновенного снимка состояния регистров центрального процессора и уменьшенную область памяти, которая содержит стек программы.- form the final file, while storing in it the data of a snapshot of the status of the registers of the central processor and the reduced memory area that contains the program stack.
Система и способ создания файлов дампа ядра в условиях системы с ограниченными ресурсами позволяет сохранять информацию о причинах возникновения сбоя в программе. Ядро, которое управляет встроенной системой, при сбоях должно сохранять только наиболее важную информацию, описывающую сбой программы, и не сохранять информацию, содержащуюся в дополнительных областях памяти. Данный подход позволяет удовлетворить условия ограниченности свободной памяти во встраиваемых системах и в тоже время дает разработчикам возможность отлаживать программу.The system and method for creating core dump files in a system with limited resources allows you to save information about the causes of a failure in the program. The kernel, which controls the embedded system, in case of failures should save only the most important information describing the failure of the program, and not save the information contained in additional memory areas. This approach allows you to satisfy the conditions of limited free memory in embedded systems and at the same time gives developers the opportunity to debug the program.
Для выполнения способа важно, чтобы сдвигали начальный адрес данной области памяти в направлении указателя начала стека многократно с максимально возможным количеством повторений.To perform the method, it is important that the starting address of this memory area is shifted in the direction of the stack start pointer repeatedly with the maximum possible number of repetitions.
Для выполнения способа важно, чтобы формировали итоговый файл во встроенном запоминающем устройстве.To perform the method, it is important that the resulting file is formed in the built-in storage device.
Техническим результатом заявленного изобретения является уменьшение стоимости, сложности выполнения и увеличение функциональных возможностей способа формирования дамп файла.The technical result of the claimed invention is to reduce the cost, complexity of execution and increase the functionality of the method of forming a dump file.
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими чертежами.For a better understanding of the claimed invention the following is a detailed description with the corresponding drawings.
Фиг.1. Схема компьютера со встроенной операционной системой, представленной ядром с запущенной программой.Figure 1. Schematic of a computer with an embedded operating system represented by a kernel with a running program.
Фиг.2. Схема формирования дамп файла в компьютере со встроенной операционной системой, выполненная согласно изобретению.Figure 2. The scheme for generating a dump file in a computer with an embedded operating system, made according to the invention.
Фиг.3. Схема уменьшения области памяти встроенной операционной системы компьютера, содержащей стек программы, в которой возник сбой, выполненная согласно изобретению.Figure 3. Scheme for reducing the memory area of the embedded operating system of a computer containing a stack of a program in which a failure has occurred made according to the invention.
Стандартный компьютер (Фиг.1), в котором может быть выполнен заявленный способ, включает в себя центральный процессор 1, модуль внутренней памяти 2 и встроенную операционную систему 3. В рабочем состоянии операционная система 3 загружена во внутреннюю память компьютера. Область внутренней памяти, в которую загружена операционная система, состоит из области, в которую загружено ядро 4 операционной системы, и область 5-10 пользователя. При этом операционная система 3 выполнена с возможностью управления программой 11 пользователя и возможностью формирования дамп файла 12. Дамп файл 12 включает в себя содержимое мгновенных снимков 6-10 памяти программы пользователя и мгновенные снимки 13 регистров центрального процессора. Средство 14 создания дамп файла является частью операционной системы 3. Программа 11 пользователя состоит из заголовка 15, исполняемой части 6 и инициализированных данных 7.A standard computer (FIG. 1), in which the claimed method can be performed, includes a
В случае возникновения сбоя (Фиг.2) в работе программы 11, состоящей из заголовка 15, исполняемой части 6 и инициализированных данных 7, под управлением ядра 4 встроенной операционной системы 3 компьютера сохраняют следующую информацию о состоянии аварийной программы: образы (мгновенные снимки) 13 регистров процессора в момент сбоя программы 11, области, которые включает в себя содержимое стека аварийной программы 10.In the event of a failure (Figure 2) in the
Способ формирования дамп файла ядра при возникновении сбоя в работе программы 11, выполняемой на компьютере со встроенной операционной системой 3, включает в себя следующие операции (Фиг.2-3). Определяют все области памяти 2, которые использует программа 11 в момент возникновения сбоя (области памяти, используемые программой, обозначены 6-10; области памяти, не используемые программой, обозначены 5). Создают мгновенный снимок 13 состояния регистров центрального процессора 1 в момент возникновения сбоя в программе 11. Формируют заголовок 15 дамп файла, при этом используют данные мгновенного снимка 13 состояния регистров центрального процессора 1. В приведенном варианте заголовок дамп файла формируют путем последовательного сохранения в файл следующих объектов:The method of dumping the kernel file in the event of a malfunction in the
- служебной информации о количестве сохраняемых областей памяти (в данном случае это будет одна область, содержащая стек вызовов рассматриваемой программы),- service information about the number of stored memory areas (in this case, it will be one area containing the call stack of the program in question),
- мгновенный снимок регистров процессора (в частности, содержащий в той или иной форме указатель на начало стека вызовов; чаще всего процессор предоставляет разработчику возможность прочитать регистр, содержащий упомянутый указатель),- a snapshot of the processor registers (in particular, containing in one form or another a pointer to the beginning of the call stack; most often, the processor provides the developer with the opportunity to read the register containing the mentioned pointer),
- прочие, необходимые для программного отладчика объекты, например, значения переменных ядра операционной системы.- other objects necessary for the software debugger, for example, the values of the variables of the kernel of the operating system.
Определяют во всех областях памяти область, которая содержит стек программы. Следует отметить, что в заявляемом изобретении под стеком подразумевается стек вызовов функций рассматриваемой программы. В случае когда программа выполняется в нескольких потоках, что подразумевает наличие отдельного стека для каждого потока, рассматривается только стек потока, в котором произошел сбой (обычно операционные системы исключают возможность доступа потока к чужому стеку вызовов).In all memory areas, the area that contains the program stack is determined. It should be noted that in the claimed invention, by the stack is meant a stack of function calls of the program in question. In the case when the program is executed in several threads, which implies the existence of a separate stack for each thread, only the stack of the thread in which the failure occurred is considered (usually operating systems exclude the ability of the thread to access a foreign call stack).
Определяют значение указателя начала стека программы, при этом используют мгновенный снимок регистров процессора. Как известно, большинство процессоров имеют регистр, который используется для выполнения команд из стека команд. Этот регистр называется указатель стека. Мгновенный снимок регистров процессора содержит в себе значение всех регистров на момент сбоя и, в частности, значение регистра «указатель стека». Определить значение указателя стека - значит прочитать значение регистра «указатель стека» из мгновенного снимка.The value of the pointer to the beginning of the program stack is determined, and an instant snapshot of the processor registers is used. As you know, most processors have a register that is used to execute commands from the instruction stack. This register is called a stack pointer. A snapshot of the processor registers contains the value of all the registers at the time of the failure and, in particular, the value of the “stack pointer” register. To determine the value of the stack pointer is to read the value of the stack pointer register from a snapshot.
Уменьшают в памяти область, которая содержит стек программы, при этом многократно (с максимально возможным количеством повторений) сдвигают начальный адрес данной области памяти в направлении указателя начала стека (процесс уменьшения области памяти обозначен 16 на Фиг.2 и детально проиллюстрирован на Фиг.3). Сохраняют уменьшенную область 17 памяти, которая содержит стек программы. Формируют итоговый файл 18, при этом сохраняют в нем данные мгновенного снимка 13 состояния регистров центрального процессора 1 и уменьшенную область памяти, которая содержит стек программы. Причем итоговый файл могут формировать во встроенном запоминающем устройстве. Следует отметить, что итоговый файл является дамп-файлом ядра с ограниченными возможностями (по сравнению с обычным, полным дамп-файлом). В частности, полученный дамп-файл позволяет просматривать только стек вызовов аварийно завершившейся программы. В то время как полный дамп-файл позволяет просматривать значения переменных программы и т.д.Reduce in memory the region that contains the program stack, while repeatedly (with the maximum possible number of repetitions) shift the starting address of this memory region in the direction of the stack start pointer (the process of decreasing the memory region is indicated by 16 in FIG. 2 and is illustrated in detail in FIG. 3) . Save the reduced memory area 17, which contains the program stack. The resulting file 18 is formed, while the data of the
Уменьшение области памяти, содержащей стек аварийной программы 10 (Фиг.3), во встроенной операционной системе 3, состоит в многократном (с максимально возможным количеством повторений) сдвиге 19 начального адреса 20 в направлении указателя 21 начала стека. При этом стек программы обозначен 22. Задача уменьшения области, содержащей стек вызовов, считается решенной, когда невозможно сдвинуть начальный адрес области памяти в направлении указателя стека, при этом не превысив значение указателя стека. При этом считается, что стек растет в сторону конечного адреса области памяти, в которой он содержится. Таким образом, сдвиг начального адреса области памяти не может повредить стек вызовов.The reduction of the memory area containing the emergency program stack 10 (FIG. 3) in the embedded
В заявленном способе в дамп файле сохраняют только следующие данные: данные мгновенного снимка состояния регистров центрального процессора и уменьшенную область памяти, которая содержит стек программы (Фиг.2). При этом размер дамп файла ядра значительно меньше объема памяти, занятого программой в момент возникновения сбоя, составляя около 1-5% объема памяти. Таким образом, удовлетворяются условия ограничения ресурсов встроенной операционной системы компьютера.In the claimed method, only the following data is stored in the dump file: data of a snapshot of the state of the registers of the central processor and a reduced memory area that contains the program stack (Figure 2). In this case, the size of the core file dump is much smaller than the amount of memory occupied by the program at the time of the crash, amounting to about 1-5% of the memory. Thus, the resource constraints of the embedded operating system of the computer are satisfied.
Заявленное изобретение может быть применено в различных типах компьютерных устройств.The claimed invention can be applied in various types of computer devices.
Хотя указанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.Although the above embodiment of the invention has been set forth to illustrate the present invention, it is clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and meaning of the present invention disclosed in the attached claims.
Claims (3)
определяют все области памяти, которые использует программа в момент возникновения сбоя;
создают мгновенный снимок состояния регистров центрального процессора в момент возникновения сбоя в программе;
формируют заголовок дамп файла, при этом используют данные мгновенного снимка состояния регистров центрального процессора;
определяют во всех областях памяти область, которая содержит стек программы;
определяют значение указателя начала стека программы, при этом используют мгновенный снимок регистров процессора;
уменьшают в памяти область, которая содержит стек программы, при этом многократно сдвигают начальный адрес данной области памяти в направлении указателя начала стека;
сохраняют уменьшенную область памяти, которая содержит стек программы;
формируют итоговый файл, при этом сохраняют в нем данные мгновенного снимка состояния регистров центрального процессора и уменьшенную область памяти, которая содержит стек программы.1. A method of generating a core file dump in the event of a malfunction in a program running on a computer, which includes the following operations:
determine all areas of memory that the program uses at the time of the failure;
create a snapshot of the state of the registers of the central processor at the time of a failure in the program;
form the header of the dump file, while using data of a snapshot of the status of the registers of the central processor;
define in all memory areas the region that contains the program stack;
determine the value of the pointer to the beginning of the program stack, while using a snapshot of the processor registers;
reduce in memory the area that contains the program stack, while repeatedly shifting the starting address of this memory area in the direction of the stack start pointer;
save the reduced memory area that contains the program stack;
form the final file, while storing in it the data of a snapshot of the status of the registers of the central processor and the reduced memory area that contains the program stack.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2007115809/09A RU2393530C2 (en) | 2007-04-26 | 2007-04-26 | Method for formation of dump file |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2007115809/09A RU2393530C2 (en) | 2007-04-26 | 2007-04-26 | Method for formation of dump file |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007115809A RU2007115809A (en) | 2008-11-10 |
RU2393530C2 true RU2393530C2 (en) | 2010-06-27 |
Family
ID=42683870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007115809/09A RU2393530C2 (en) | 2007-04-26 | 2007-04-26 | Method for formation of dump file |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2393530C2 (en) |
-
2007
- 2007-04-26 RU RU2007115809/09A patent/RU2393530C2/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
RU2007115809A (en) | 2008-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7302613B2 (en) | System and method for capturing kernel-resident information | |
US8949671B2 (en) | Fault detection, diagnosis, and prevention for complex computing systems | |
US7950001B2 (en) | Method and apparatus for instrumentation in a multiprocessing environment | |
US8423718B2 (en) | Low-overhead run-time memory leak detection and recovery | |
US6886081B2 (en) | Method and tool for determining ownership of a multiple owner lock in multithreading environments | |
US7793160B1 (en) | Systems and methods for tracing errors | |
CN104461876A (en) | Concurrent program reappearance debugging method based on snapshot sequence running | |
CN108351840B (en) | Vehicle control device | |
US10162324B2 (en) | Method for manipulating a control program of a control device | |
US20100185840A1 (en) | Propagating unobserved exceptions in a parallel system | |
US20080133975A1 (en) | Method for Running a Computer Program on a Computer System | |
IL256164A (en) | Secure mode state data access tracking | |
CN102708015A (en) | Debugging method based on diagnosis of CPU (central processing unit) non-maskable interrupt system problems | |
CN109885489B (en) | Data race detection method and device in driver | |
US20210011717A1 (en) | Verified Stack Trace Generation And Accelerated Stack-Based Analysis With Shadow Stacks | |
US7421618B2 (en) | Method for processing a diagnosis of a processor, information processing system and a diagnostic processing program | |
US20020023224A1 (en) | Computer software installation | |
US6785883B1 (en) | Software system for tracing data | |
JP2009175960A (en) | Virtual multiprocessor system | |
RU2393530C2 (en) | Method for formation of dump file | |
US7890740B2 (en) | Processor comprising a first and a second mode of operation and method of operating the same | |
US8695000B1 (en) | Data transfer protection in a multi-tasking modeling environment having a protection mechanism selected by user via user interface | |
CN104956337B (en) | The control method of computer installation and computer installation | |
JP2000099372A (en) | Computer system | |
KR101395007B1 (en) | Apparatus and method for processing snapshot image by using snapshot image compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FA92 | Acknowledgement of application withdrawn (lack of supplementary materials submitted) |
Effective date: 20090524 |
|
FZ9A | Application not withdrawn (correction of the notice of withdrawal) |
Effective date: 20090812 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20180427 |