1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/teawater-kgtp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Что такое KGTP?

KGTP — это комплексный динамический трассировщик для анализа проблем ядра Linux и приложений (включая Android) в производственных системах в реальном времени.

Чтобы использовать его, не нужно патчить или пересобирать ядро Linux. Достаточно собрать модуль KGTP и установить его с помощью команды insmod.

Он предоставляет ядру Linux удалённый интерфейс отладки GDB. Затем GDB на текущем компьютере или удалённой машине может выполнять отладку и трассировку ядра Linux и пользовательских программ через точки трассировки GDB и некоторые другие функции без остановки ядра Linux. И даже если на плате нет GDB или интерфейса для удалённой отладки, можно выполнить отладку ядра Linux с использованием автономной отладки (см. /sys/kernel/debug/gtpframe и автономную отладку).

KGTP поддерживает архитектуры X86-32, X86-64, MIPS и ARM.

KGTP совместим с большинством версий ядра (от 2.6.18 до последних).

Видео, представляющее KGTP на английском языке, доступно по ссылке: http://www.youtube.com/watch?v=7nfGAbNsEZY или http://www.tudou.com/programs/view/fPu_koiKo38/.

Видео, представляющее KGTP на китайском языке, доступно по ссылке: http://www.infoq.com/cn/presentations/gdb-sharp-knife-kgtp-linux-kernel.

Более подробную информацию о KGTP на китайском языке можно найти здесь.

Как использовать KGTP?

См. исходный код ниже.

#kgtp.py автоматически настроит и запустит KGTP и GDB на текущей машине.
#При первом использовании этого скрипта придётся подождать некоторое время, так как необходимо загрузить некоторые пакеты.
wget https://raw.githubusercontent.com/teawater/kgtp/master/kgtp.py
sudo python kgtp.py
#Доступ к памяти ядра Linux.
(gdb) p jiffies_64
$2 = 5081634360
#Установка точки трассировки в функции vfs_read для сбора её обратной трассировки.
(gdb) trace vfs_read
Tracepoint 1 at 0xffffffff811b8c70: file fs/read_write.c, line 382.
(gdb) actions 
Введите действия для точки трассировки 1, по одной строке.
Завершите строкой «end».
>collect $bt
>end
(gdb) tstart 
(gdb) tstop 
(gdb) tfind 
Found trace frame 0, tracepoint 1
#0 vfs_read (file=file@entry=0xffff88022017b000, 
 buf=buf@entry=0x7fff0fdd80f0 <Address 0x7fff0fdd80f0 out of bounds>, 
 count=count@entry=16, pos=pos@entry=0xffff8800626aff50) at fs/read_write.c:382
382 {
(gdb) bt
#0 vfs_read (file=file@entry=0xffff88022017b000, 
 buf=buf@entry=0x7fff0fdd80f0 <Address 0x7fff0fdd80f0 out of bounds>, 
 count=count@entry=16, pos=pos@entry=0xffff8800626aff50) at fs/read_write.c:382
#1 0xffffffff811b9819 in SYSC_read (count=16, 
 buf=0x7fff0fdd80f0 <Address 0x7fff0fdd80f0 out of bounds>, fd=<optimized out>)
 at fs/read_write.c:506

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

KGTP — это комплексный динамический трассировщик, который позволяет в реальном времени анализировать проблемы ядра Linux и приложений (включая Android) в продуктовой системе. Расширить Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/teawater-kgtp.git
git@gitlife.ru:oschina-mirror/teawater-kgtp.git
oschina-mirror
teawater-kgtp
teawater-kgtp
master