Esempio di driver di dispositivo Linux per dump_stack() per stampare la traccia dello stack del caricamento del modulo

Esempio di driver di dispositivo Linux per dump_stack() per stampare la traccia dello stack del caricamento del modulo

Una delle opzioni utili nel debug è stampare la traccia della chiamata/traccia dello stack. Il kernel Linux fornisce una funzione per stampare la traccia dello stack:dump_stack(). La funzione dump_stack produce una traccia dello stack molto simile a panico e oops, ma non causa problemi e torniamo al normale flusso di controllo.

La chiamata alla funzione dump_stack() stamperà la traccia dello stack a quel punto.

Codice:

#include <linux/module.h>
#include <linux/kernel.h>

static int myinit(void)
{
	pr_info("dump_stack myinit\n");
	dump_stack();
	pr_info("dump_stack after\n");
	return 0;
}

static void myexit(void)
{
	pr_info("panic myexit\n");
}

module_init(myinit)
module_exit(myexit)
MODULE_LICENSE("GPL");

Uscita: