如何打印以筛选结构及其所有内容



我想在 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)打印。 而且开销仍然很低。

相关内容

  • 没有找到相关文章

最新更新