我想在 c
/c++
中找到一个宏,它获取结构typedef
和指向结构的指针作为输入并像这样打印其所有内容:
假设我有一个名为 struct account
的结构。
struct account {
int account_number;
char *first_name;
char *last_name;
float balance;
};
我这样使用它:
struct account my_account= {
.account_number = 321321,
.first_name = 0x12345678,
.last_name = 0,
.balance = 222 };
我想要一个 linux 内核/c 语言中的宏,看起来像这样:
PRINT_STRUCT_CONTENT(struct_type, pointer)
并打印以下内容:
my_account= {
account_number = 321321,
first_name = 0x12345678,
last_name = 0,
balance = 222
}
这个想法是在内核中具有一种dir
python函数
编写宏以字符串化结构的内容
用于打印不同类型的变量值的最通用 C 宏
是否有 C 预处理器宏来打印结构?
在 C 预处理器中写入 while 循环
print_hex_dump或print_hex_dump_bytes
例:
struct mystruct *p;
print_hex_dump_bytes("mystruct: ", DUMP_PREFIX_ADDRESS, p, sizeof(*p));
您可能需要查看内核跟踪事件 API。 它比简单的printk
稍微复杂一些,但它是动态可切换的,并且可以进行一些漂亮的(-ier)打印。 而且开销仍然很低。