Получение расширенной диагностической информации RT на Linux

<< Click to Display Table of Contents >>

Navigation:  Работа в режиме исполнения > Отладка проекта > Как получить диагностическую информацию среды исполнения >

Получение расширенной диагностической информации RT на Linux

Дампы исполнительной системы могут быть сформированы автоматически и вручную.

Автоматическое формирование дампа

Дамп формируется автоматически, когда происходит сбой в работе исполнительной системы.

Названия дампов формируются в зависимости от имени процесса исполнительной системы, выполняемом в потоке ОС.

Например, если исполнительная система даёт сбой при выполнении задачи пользователя, формируется дамп U0.core:

poluchenie_diag_info_RT_Linux_6

Путь формирования дампов по умолчанию:

Для версий 1.3.5 и ниже: /opt/mplc4/log

Для версий 1.3.6 и выше: /var/log/mplc4/dumps

Сформированные дампы необходимо направить в HelpDesk систему технической поддержки для анализа.

Ручное формирование дампа

Для ручного формирования дампа нужно выполнить несколько действий.

Исполнительная система версии 1.3.5 и ниже

1) Используя команду ps | grep mplc , определить pid для процесса mplc.

   Если вывод пустой, можно использовать команду ps -e | grep mplc:

  poluchenie_diag_info_RT_Linux

Если запущено несколько экземпляров исполнительной системы, как в данном примере, то для того чтобы определить pid нужного экземпляра, следует использовать команду ps -axu | grep mplc. В выводе командной строки будет информация о пути лог-файла, соответствующего работе узла, загруженного в экземпляр N:

  poluchenie_diag_info_RT_Linux_1

2) Выполнить команду gcore [pid] ([pid] получен на шаге 1). В результате дамп должен появиться в текущей папке. Если такой команды нет, нужно установить пакет gdb (установка описана ниже).

3) Если нет возможности установить пакет gdb, для формирования дампа можно использовать команду sudo killall -s SIGBUS mplc.

   Если запущено несколько экземпляров исполнительной системы, то для формирования дампа следует указать pid нужного экземпляра: sudo kill -s SIGBUS [pid].

   При этом процесс mplc будет перезапущен, а в папке /opt/mplc4/log появиться дамп mplc.core:

  poluchenie_diag_info_RT_Linux_2

На ALT Linux такой способ формирования дампа может не сработать, или дамп будет сформирован в другой папке, например в корневой.

Исполнительная система версии 1.3.6 и выше

Начиная с версии MasterSCADA 4D RT 1.3.6, основной процесс исполнительной системы называется Main. Поэтому во всех командах, упомянутых выше, процесс mplc заменяется на Main:

poluchenie_diag_info_RT_Linux_3

При формировании дампа процесс Main перезапускается, и появляется файл Main.core по пути:

/var/log/mplc4/dumps - если версия 1.3.6 среды исполнения MasterSCADA 4D была установлена с нуля:

poluchenie_diag_info_RT_Linux_4

/opt/mplc4/log - если среда исполнения MasterSCADA 4D была обновлена на версию 1.3.6 с более старой версии:

poluchenie_diag_info_RT_Linux_5

Сформированные дампы необходимо направить в HelpDesk систему технической поддержки для анализа.

Установка пакета gdb

Установить пакет gdb на компьютер с ОС Linux можно двумя способами.

1. Установка готовых двоичных файлов gdb из проверенных ресурсов дистрибутива

Можно установить gdb в дистрибутив Linux на основе Debian, выполнив следующие команды:

$ sudo apt-get update

$ sudo apt-get install gdb

2. Загрузка исходного кода gdb, его компиляция и установка

Для компиляции gdb с нуля и его установки нужно выполнить указанные ниже шаги:

1) Загрузить исходный код. Можно загрузить исходный код всех выпусков с http://ftp.gnu.org/gnu/gdb/, используя команду: $ wget "http://ftp.gnu.org/gnu/gdb/gdb-7.11.tar.gz".

2) Извлечь код: $ tar -xvzf gdb-7.11.tar.gz.

3) Настроить и скомпилировать код, используя следующие команды:

   $ cd gdb-7.11

   gdb-7.11$ ./configure

   gdb-7.11$ make

   После завершения двоичный файл gdb будет расположен по пути gdb-7.11/gdb/gdb.

4) Установить gdb, с использованием команды $ make install. По умолчанию двоичные файлы gdb будут установлены в /usr/local/bin, а библиотеки - в /usr/local /lib.

 

Смотрите также: