В чем разница между logcat и dmesg?

Какой источник журнала используется logcat (с настройками по умолчанию: adb shell logcat). Включены ли логи dmesg в вывод logcat? Если нет, то в чем разница между журналами dmesg и logcat?

2 ответа

Решение

Согласно исходному коду https://github.com/android/platform_system_core/blob/master/liblog/logd_write.c Log.d(String tag, String message) пишет напрямую /dev/log/main,

Вы можете написать там так adb shell echo "Hello world" >> /dev/log/main

Но dmesg печатает содержимое кольцевого буфера ядра Так dmesg будет печатать только то, что система пишет в журнал ядра, logcat будет выводить только логи Android-приложения.

LOGCAT-- Это используется в Android, чтобы увидеть различные сообщения, написанные менеджерами активности внутри Android. Вы видите, что android также использует ядро ​​linux, но это происходит, когда ядро ​​загружается (аппаратная инициализация / зондирование позаботился о), Android запускает процесс, называемый init, который анализирует файл init.rc, который содержит все действия системы Android, я имею в виду основные процессы для загрузки Android, в этом файле init.rc есть процесс, который называется zygote, который запускается виртуальная машина Dalvik, а затем все остальные менеджеры активности, которые будут использоваться приложением для взаимодействия с оборудованием. так что это в основном сообщения от виртуальной машины, чтобы прикладные программисты отлаживали ее. Пример logcat http://pastebin.com/bV1Vd6EQ

Dmesg - это сообщения от ядра, предположим, вы пишете драйвер, его можно использовать как инструмент для отладки драйверов и другого кода ядра, большинство из них - сообщения драйверов, это хороший способ отладки, ядро, драйвер и т. Д. Пример dmesg http://pastebin.com/P4ja9PFi

Logcat предназначен только для Android и не доступен ни в одной другой ОС; Logcat и dmesg доступны на Android, но не наоборот для любых дистрибутивов Linux.

С уважением, зубрай

Другие вопросы по тегам