Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Oct 18, 2021 12:34 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Mon Aug 02, 2021 2:09 pm 
Offline
User avatar

Joined: Tue Jan 26, 2021 3:38 am
Posts: 40
pxmon (Process eXecution MONitor) – средство для мониторинга исполнения программ (точнее их процессов). Основной целью является наблюдение в реальном времени за активностью программ. Также pxmon может применяться для быстрого тестирования, изучения и поиска подозрительных действий в исследуемой программе, и для высокоуровневой (а значит только поверхностной) отладки. При всём при этом, pxmon – не отладчик (т.к. шагом исполнения процесса является действие, а не инструкция процессора или оператор из языка высокого уровня), не песочница и не антивирус.
Ключевыми понятиями в pxmon являются действие и активность. Действиями называются относительно крупные события в процессе, такие как системный вызов или вызов библиотечной функции, например: чтение файла, выделение памяти, вызов printf и т.д. Под активностью, соответственно, подразумеваются определенные категории таких действий: файловая, сетевая, gui-активность и т.д.
На данный момент pxmon находится в разработке и готова лишь beta-версия. Так что пока есть следующее:
  • отслеживание большинства действий, представленных системными вызовами (некоторые из них отображаются довольно детально, некоторые, такие как сетевые, представлены в виде заглушек аля "Calling a network configuration/statistics function")
  • отслеживание выделенных блоков памяти
  • приостановка/продолжение проверяемого процесса по горячей клавише [Ctrl+Alt+F8] и завершение процесса по [Ctrl+Alt+F10]
  • нумерация действий
  • отслеживание неизвестных функций
  • библиотечные вызовы пока не отслеживаются
Также есть возможность фильтровать активность с помощью флага -f (см. справку с помощью pxmon -h), но фильтрация не доработана пока до ума. Программа очень сырая, но некоторую пользу от неё получить можно уже сейчас. Баги наверняка есть, буду рад услышать репорты о них.
Это консольное приложение, поэтому его необходимо запускать в shell'е:
Attachment:
1.png
1.png [ 5.89 KiB | Viewed 1545 times ]

Примеры работы:
Attachment:
2.png
2.png [ 15.86 KiB | Viewed 1545 times ]

Attachment:
3.png
3.png [ 18.02 KiB | Viewed 1545 times ]

Attachment:
4.png
4.png [ 28.12 KiB | Viewed 1545 times ]


Top
   
PostPosted: Mon Aug 02, 2021 2:10 pm 
Offline
User avatar

Joined: Tue Jan 26, 2021 3:38 am
Posts: 40
Сам бинарник (внимание! бета-версия):
Attachment:
pxmon_0_0_b0 [6.22 KiB]
Downloaded 20 times


Top
   
PostPosted: Mon Aug 02, 2021 2:14 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5540
Можешь объяснить что под капотом, как программа отслеживает активность процесса?

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Mon Aug 02, 2021 2:21 pm 
Offline
User avatar

Joined: Tue Jan 26, 2021 3:38 am
Posts: 40
Leency wrote:
Можешь объяснить что под капотом, как программа отслеживает активность процесса?

Пока что используется весьма примитивный перехват прерываний с помощью механизма отладки процессов (кстати, из-за этого отслеживается только основной поток процесса, многопоточные пока не поддерживаются), поэтому всё отследить она пока не в состоянии. Возможно в будущем будет задействован дополнительный драйвер или более умный код (эвристика или что-то в этом духе).


Top
   
PostPosted: Sat Aug 07, 2021 12:28 pm 
Offline
User avatar

Joined: Tue Jan 26, 2021 3:38 am
Posts: 40
pxmon 0.0 beta 1:
  • мелкие фиксы
  • теперь pxmon сообщает, завершилась ли программа самостоятельно, была ли убита другой задачей или самим монитором
  • теперь можно передавать запущенной программе параметры (например, pxmon "tinypad" "example.asm")
  • улучшенная обработка параметров, поддержка скобок (pxmon "/sys/file managers/eolite"), поддержка длинных опций (--option)
  • теперь два режима работы: режим реального времени и пошаговый режим
Режим реального времени (почти реального, т.к. отслеживание всё-таки затормаживает пациента) - это прежний режим мониторинга. Пошаговый же режим позволяет следить за работой наблюдаемого процесса последовательно, и таким образом успеть просмотреть все действия (чего довольно трудно добиться в режиме реального времени). После каждого действия нужно нажать [Ctrl+Alt+F8]. Для того, чтобы запустить в пошаговом режиме нужно воспользоваться ключом --mt, например:
pxmon --mt cpu
Attachment:
pxmon_0_0_beta_1 [6.57 KiB]
Downloaded 22 times


Top
   
PostPosted: Tue Aug 24, 2021 11:13 pm 
Offline
User avatar

Joined: Thu Jun 25, 2020 1:14 am
Posts: 90
Хорошая работа! Эта прога достойна внимания. Мне пригодилась для отладки

_________________
Gentlemen, has it occurred to you to use libc.obj instead of "reinventing the wheel"?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited