From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 1 Jul 2021 16:12:53 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: <20210701141253.nqsetmy74odf4g6b@example.org> References: <0e38a002-1ffd-6372-16bd-6654d743e066@gmail.com> <20210701133909.z6mpmjmnuoahhpmo@example.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [make-initrd] =?utf-8?b?0JjQvdGE0YDQsNGB0YLRgNGD0LrRgtGD0YDQsCA=?= =?utf-8?b?0L7RgtC70LDQtNC60Lgg0LIgbWFrZS1pbml0cmQ=?= X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2021 14:12:55 -0000 Archived-At: List-Archive: On Thu, Jul 01, 2021 at 04:50:21PM +0300, Leonid Krivoshein wrote: > > > 01.07.2021 16:39, Alexey Gladkov пишет: > > On Thu, Jul 01, 2021 at 03:31:07PM +0300, Leonid Krivoshein wrote: > > > Всем привет! > > > > > > > > > Из-за скудности сабжа пришлось городить свой набор функций и в процессе > > > отладки они сильно выручили. С включенным bc_debug получаются вменяемые > > > отладочные журналы, не сравнить с использованием set -x. Примеры сейчас > > > можно увидеть здесь: > > > http://git.altlinux.org/people/klark/packages/make-initrd-bootchain.git в > > > подкаталоге boot-logs. > > > > > > В самом make-initrd на эту тему есть немного, например, параметр debug, от > > > которого мало что меняется в run-time, а раньше он ещё и был включен по > > > дефолту (я не знал, как отключить, поэтому ввёл свой bc_debug). Было бы > > > здорово иметь такую инфраструктуру на верхнем уровне make-initrd, доступную > > > для любых фич. Речь о примерно следующем наборе функций: > > > > > > debug() -- Вывод текстового сообщения при расширенной отладке. > > > enter() -- Трассировка при расширенной отладке: вход в указанную функцию. > > > leave() -- Трассировка при расширенной отладке: выход из указанной функции. > > > run() -- Запуск внешней команды. При расширенной отладке команда попадёт в > > > журнал. > > > fdump() -- Вывод в журнал содержимого указанного файла при расширенной > > > отладке. > > > assign() -- Присвоение переменной указанного значения, попадающее в журнал. > > > > > > message() -- уже есть, он отправляет в журнал сообщение независимо от debug. > > > > > > Я понимаю, что после отладки enter()/leave() и возможно что-то ещё из кода > > > может даже лучше убирать. Но в таком виде как сейчас их наличие помогает не > > > только программисту отлаживать программу, но и пользователю разобраться, > > > почему не грузится система. Возможно имеет смысл перетащить в > > > initrd-sh-functions? > > В качестве отдельной фичи ? Если да, то в ней можно принудительно включать > > rdlog=console. Если нет, то нужно её держать в памяти. > > А почему в памяти? debug() выводит в >&2 если включен debug, остальные > функции, на нём основаны. А куда уж скрипт направит свой stderr, туда и > будет выводиться. Зачем делать это фичей, если тут просто расширение API? Держать в памяти в смысле в уме, что для отладки этот параметр стоит указывать в cmdline. -- Rgrds, legion