Почему динамическое управление отладкой не печатает переменных?

Я проверил выводы динамических функций отладки (более конкретно netdev_dbg) в sys/kernel/debug/dynamic_debug/control файл. Вывод имеет все статические символы в форматировании строки (как %d для целого числа), но строка для типа ожидаемого типа данных не заменяется фактическим значением. Любая справка ценилась бы. Следующее является содержанием части файла:

drivers/misc/mei/hw-me.c:994 [mei_me]mei_me_d0i3_exit_sync =_ "d0i3 exit ret = %d\012"
drivers/misc/mei/hw-me.c:970 [mei_me]mei_me_d0i3_exit_sync =_ "d0i3 exit wait not needed\012"
drivers/misc/mei/hw-me.c:963 [mei_me]mei_me_d0i3_exit_sync =_ "d0i3 exit not needed\012"
drivers/misc/mei/hw-me.c:940 [mei_me]mei_me_d0i3_enter =_ "d0i3 enter\012"
drivers/misc/mei/hw-me.c:932 [mei_me]mei_me_d0i3_enter =_ "already d0i3 : set not needed\012"
drivers/misc/mei/hw-me.c:910 [mei_me]mei_me_d0i3_enter_sync =_ "d0i3 enter ret = %d\012"
drivers/misc/mei/hw-me.c:887 [mei_me]mei_me_d0i3_enter_sync =_ "d0i3 enter wait not needed\012"
drivers/misc/mei/hw-me.c:859 [mei_me]mei_me_d0i3_enter_sync =_ "d0i3 set not needed\012"
drivers/misc/mei/hw-me.c:794 [mei_me]mei_me_pg_is_enabled =_ "pg: not supported: d0i3 = %d HGP = %d hbm version %d.%d ?= %d.%d\012"
drivers/misc/mei/hw-me.c:590 [mei_me]mei_me_count_full_read_slots =_ "filled_slots =%08x\012"
drivers/misc/mei/hw-me.c:541 [mei_me]mei_me_hbuf_write =_ "empty slots = %hu.\012"
drivers/misc/mei/hw-me.c:538 [mei_me]mei_me_hbuf_write =_ "hdr:host=%02d me=%02d len=%d internal=%1d comp=%1d"
drivers/misc/mei/hw-me.c:445 [mei_me]mei_me_hw_start =_ "hw is ready\012"
sound/core/init.c:116 [snd]init_info_for_card =_ "unable to create card entry\012"
sound/core/control.c:1537 [snd]snd_ctl_ioctl =_ "unknown ioctl = 0x%x\012"
sound/core/device.c:156 [snd]snd_device_free =_ "device free %p (from %pF), not found\012"
sound/core/device.c:132 [snd]snd_device_disconnect =_ "device disconnect %p (from %pF), not found\012"
sound/core/timer.c:262 [snd_timer]snd_timer_open =_ "ALSA: timer: invalid slave class %i\012"
net/bluetooth/af_bluetooth.c:574 [bluetooth]bt_sock_wait_ready =_ "sk %p\012"
net/bluetooth/af_bluetooth.c:537 [bluetooth]bt_sock_wait_state =_ "sk %p\012"
net/bluetooth/af_bluetooth.c:490 [bluetooth]bt_sock_ioctl =_ "sk %p cmd %x arg %lx\012"
net/bluetooth/af_bluetooth.c:446 [bluetooth]bt_sock_poll =_ "sock %p, sk %p\012"
net/bluetooth/af_bluetooth.c:330 [bluetooth]bt_sock_stream_recvmsg =_ "sk %p size %zu\012"
net/bluetooth/af_bluetooth.c:251 [bluetooth]bt_sock_recvmsg =_ "sock %p sk %p len %zu\012"
net/bluetooth/af_bluetooth.c:203 [bluetooth]bt_accept_dequeue =_ "sk %p, already unlinked\012"
net/bluetooth/af_bluetooth.c:189 [bluetooth]bt_accept_dequeue =_ "parent %p\012"
net/bluetooth/af_bluetooth.c:175 [bluetooth]bt_accept_unlink =_ "sk %p state %d\012"
net/bluetooth/af_bluetooth.c:159 [bluetooth]bt_accept_enqueue =_ "parent %p, sk %p\012"
net/bluetooth/hci_core.c:4263 [bluetooth]hci_cmd_work =_ "%s cmd_cnt %d cmd queued %d\012"
net/bluetooth/hci_core.c:4246 [bluetooth]hci_rx_work =_ "%s SCO data packet\012"
net/bluetooth/hci_core.c:4241 [bluetooth]hci_rx_work =_ "%s ACL data packet\012"
net/bluetooth/hci_core.c:4236 [bluetooth]hci_rx_work =_ "%s Event packet\012"
net/bluetooth/hci_core.c:4207 [bluetooth]hci_rx_work =_ "%s\012"
net/bluetooth/hci_core.c:4147 [bluetooth]hci_req_cmd_complete =_ "opcode 0x%04x status 0x%02x\012"
net/bluetooth/hci_core.c:4087 [bluetooth]hci_scodata_packet =_ "%s len %d handle 0x%4.4x\012"
net/bluetooth/hci_core.c:4054 [bluetooth]hci_acldata_packet =_ "%s len %d handle 0x%4.4x flags 0x%4.4x\012"
net/bluetooth/hci_core.c:4023 [bluetooth]hci_tx_work =_ "%s acl %d sco %d le %d\012"
net/bluetooth/hci_core.c:3991 [bluetooth]hci_sched_le =_ "chan %p skb %p len %d priority %u\012"
net/bluetooth/hci_core.c:3972 [bluetooth]hci_sched_le =_ "%s\012"
net/bluetooth/hci_core.c:3956 [bluetooth]hci_sched_esco =_ "skb %p len %d\012"
net/bluetooth/hci_core.c:3948 [bluetooth]hci_sched_esco =_ "%s\012"
net/bluetooth/hci_core.c:3932 [bluetooth]hci_sched_sco =_ "skb %p len %d\012"
1
задан 19 April 2018 в 23:16

1 ответ

Используйте dmesg утилита для наблюдения фактического вывода отладки от ядра.

файл управления dynamic_debug просто показывает все операторы отладки в Вашем рабочем ядре, которое может быть включено или отключено. =_ в Вашем примере производит шоу, что эти сообщения отладки отключены и не появятся в выводе журнала ядра. Эти p флаг указал бы, что сообщение отладки включено.

можно затем записать в файл управления dynamic_debug для включения любого из дополнительных операторов отладки, в которых Вы нуждаетесь. Синтаксис для этого является несколько загадочным, но хорошо зарегистрированный в https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html .

0
ответ дан 8 December 2019 в 01:45

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

Похожие вопросы: