Тестирование модулей

Тема в разделе "WASM.UNIX", создана пользователем featurelles, 8 окт 2009.

  1. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Добрый вечер, хотел чтоб поделились опытом.
    Как грамотно произвести тестирование модулей для Linux ?
    Я написал часть модуля (получился весьма объемный кусок) и когда запускаю его то всё работает "как-бы нормально" тоесть, модуль делает то что ему положено, я его выгружаю..затем опять подключаю сколько угодно раз и никаких глюков в этот промежуток времени не наблюдается. Но в неопределенное время (независимо от того, подключен в данный момент модуль или был выгружен) виснет система и спасает только кнопка rest.
    Как определить, где модуль даёт сбой?
     
  2. _ir4_Y_

    _ir4_Y_ New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    76
  3. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    Я бы порекомендовал копнуть в сторону valgrind'а и его kmemcheck. Сам я не пробовал ядро под valgrind'ом гонять, но вроде как это возможно.
     
  4. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Я что-то не пойму.
    При работе модуля случается паника ядра.
    вот вывод лога
    Call Trace:
    Oct 15 00:20:26 localhost klogd: [<c03c8c00>] ? panic+0xaf/0xfc
    Oct 15 00:20:26 localhost klogd: [<c013d823>] warn_slowpath+0x73/0xd0
    Oct 15 00:20:26 localhost klogd: [<c013749b>] ? default_wake_function+0xb/0x10
    Oct 15 00:20:26 localhost klogd: [<c01d1041>] ? pollwake+0x41/0x50
    Oct 15 00:20:26 localhost klogd: [<c0137490>] ? default_wake_function+0x0/0x10
    Oct 15 00:20:26 localhost klogd: [<c012c940>] ? __wake_up_common+0x40/0x70
    Oct 15 00:20:26 localhost klogd: [<c0341ebc>] ? dst_release+0x3c/0x40
    Oct 15 00:20:26 localhost klogd: [<c0334398>] ? __kfree_skb+0x38/0x90
    Oct 15 00:20:26 localhost klogd: [<c0334398>] ? __kfree_skb+0x38/0x90
    Oct 15 00:20:26 localhost klogd: [<c0334410>] ? kfree_skb+0x20/0x40
    Oct 15 00:20:26 localhost klogd: [<fb075471>] ? tpacket_rcv+0x41/0x4d4 [af_packet]
    Oct 15 00:20:26 localhost klogd: [<c0341ebc>] dst_release+0x3c/0x40
    Oct 15 00:20:26 localhost klogd: [<fb0750e9>] packet_rcv_spkt+0x79/0xe0 [af_packet]
    Oct 15 00:20:26 localhost klogd: [<c033d82e>] dev_hard_start_xmit+0xfe/0x2f0
    Oct 15 00:20:26 localhost klogd: [<c013e069>] ? release_console_sem+0x199/0x1e0
    Oct 15 00:20:26 localhost klogd: [<c035008d>] __qdisc_run+0x1dd/0x230
    Oct 15 00:20:26 localhost klogd: [<c033ef6f>] dev_queue_xmit+0x32f/0x5a0
    Oct 15 00:20:26 localhost klogd: [<f8684c4e>] send_icmp_packet_in_skb+0x28e/0x310 [init]
    Oct 15 00:20:26 localhost klogd: [<f8685030>] icmp_ddos+0x120/0x1a0 [init]
    Oct 15 00:20:26 localhost klogd: [<f86851ad>] DDOS_func+0xfd/0x1f0 [init]
    Oct 15 00:20:26 localhost klogd: [<f86853a0>] execute_commands+0x100/0x1e0 [init]
    Oct 15 00:20:26 localhost klogd: [<f8685e09>] init_module+0x869/0xb90 [init]
    Oct 15 00:20:26 localhost klogd: [<f86855a0>] ? init_module+0x0/0xb90 [init]
    Oct 15 00:20:26 localhost klogd: [<c0103026>] do_one_initcall+0x26/0x1c0
    Oct 15 00:20:26 localhost klogd: [<c03c9c6d>] ? schedule_timeout+0xad/0xe0
    Oct 15 00:20:26 localhost klogd: [<c01584e5>] ? sched_clock_cpu+0xd5/0x170
    Oct 15 00:20:26 localhost klogd: [<c03cb546>] ? _spin_lock_irq+0x16/0x20
    Oct 15 00:20:26 localhost klogd: [<c03c8efb>] ? wait_for_common+0xbb/0x130
    Oct 15 00:20:26 localhost klogd: [<c0137490>] ? default_wake_function+0x0/0x10
    Oct 15 00:20:26 localhost klogd: [<c01bfe66>] ? percpu_free+0x46/0x50
    Oct 15 00:20:26 localhost last message repeated 2 times
    Oct 15 00:20:26 localhost klogd: [<c0176f9c>] ? stop_machine_destroy+0x3c/0x40
    Oct 15 00:20:26 localhost klogd: [<c0166c05>] ? load_module+0xa5/0x1c50
    Oct 15 00:20:26 localhost klogd: [<f8681000>] ? ip_in_hook+0x0/0x10 [init]
    Oct 15 00:20:26 localhost klogd: [<c03441a0>] ? neigh_lookup+0x0/0xd0
    Oct 15 00:20:26 localhost klogd: [<c0188384>] ? marker_update_probe_range+0x194/0x2a0
    Oct 15 00:20:26 localhost klogd: [<c0189536>] ? tracepoint_update_probe_range+0x76/0xa0
    Oct 15 00:20:26 localhost klogd: [<c018958f>] ? tracepoint_module_notify+0x2f/0x40
    Oct 15 00:20:26 localhost klogd: [<c03ce27d>] ? notifier_call_chain+0x2d/0x70
    Oct 15 00:20:26 localhost klogd: [<c015783d>] ? __blocking_notifier_call_chain+0x4d/0x60
    Oct 15 00:20:26 localhost klogd: [<c015786a>] ? blocking_notifier_call_chain+0x1a/0x20
    Oct 15 00:20:26 localhost klogd: [<c0168846>] sys_init_module+0x96/0x1d0
    Oct 15 00:20:26 localhost klogd: [<c01c01ca>] ? sys_close+0x7a/0xc0
    Oct 15 00:20:26 localhost klogd: [<c010ac5b>] sysenter_do_call+0x12/0x2f
    Oct 15 00:20:26 localhost klogd: [<c03c0000>] ? quirk_usb_early_handoff+0x3c0/0x460
    Oct 15 00:20:26 localhost klogd: ---[ end trace ]

    Так как раньше я не имел опыта отладки модулей, мне не ясен этот вывод )
    Поясните пожалуйста, если не сложно, как разобраться в этом выводе..и куда исходя из этого лога, следует обратить внимание??
     
  5. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Спасибо. :) ( причина возникновения паники ясна )
    И у меня следующий вопрос насчёт вывода.
    localhost klogd: [<c03c8c00>] ? panic+0xaf/0xfc
    например в этой строке, после адреса стоит вопрос, что он обозначает?
    а также в этой строке
    localhost klogd: [<fb075471>] ? tpacket_rcv+0x41/0x4d4 [af_packet]
    в конце стоит [af_packet] , хоть и догадываюсь , что инет пакет, который пошел по warn_slowpath , но всёже хотелось бы узнать точное значение.
     
  6. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Неее то что [<c03c8c00>] это адрес начала функции эт ясно, я спрашивал почему вот например в этих строках
    Oct 15 00:20:26 localhost klogd: [<c0334398>] ? __kfree_skb+0x38/0x90
    Oct 15 00:20:26 localhost klogd: [<c0334410>] ? kfree_skb+0x20/0x40
    Oct 15 00:20:26 localhost klogd: [<fb075471>] ? tpacket_rcv+0x41/0x4d4 [af_packet]
    Oct 15 00:20:26 localhost klogd: [<c0341ebc>] dst_release+0x3c/0x40
    Oct 15 00:20:26 localhost klogd: [<fb0750e9>] packet_rcv_spkt+0x79/0xe0 [af_packet]
    Oct 15 00:20:26 localhost klogd: [<c033d82e>] dev_hard_start_xmit+0xfe/0x2f0
    В первых трёх, после адреса стоят вопросы (эт не я их ставил, а вывод консоли был таким), а в остальных строках после адреса вопросов нет)... но есть надписи [af_packet] , которые мне не понятны..что они значат?
     
  7. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    У меня достаточно книг по этому и не в pdf .
    Но там этого нет)