如何在gdb中列出结构信息?

如何在gdb中列出结构信息?,gdb,Gdb,我可以检查非结构类型,但在检查结构时,总是会得到一个未定义的“函数”struct.”: (gdb)l ngx\u http\u请求 10 11#包括 12#包括 13 14 15类型定义结构ngx_http_请求ngx_http_请求; 16类型定义结构ngx_http_upstream_ngx_http_upstream_t; 17 typedef结构ngx_http_缓存ngx_http_缓存; 18 typedef结构ngx_http_文件缓存ngx_http_文件缓存; 19 typed

我可以检查非结构类型,但在检查结构时,总是会得到一个未定义的“
函数”struct.
”:

(gdb)l ngx\u http\u请求
10
11#包括
12#包括
13
14
15类型定义结构ngx_http_请求ngx_http_请求;
16类型定义结构ngx_http_upstream_ngx_http_upstream_t;
17 typedef结构ngx_http_缓存ngx_http_缓存;
18 typedef结构ngx_http_文件缓存ngx_http_文件缓存;
19 typedef结构ngx_http_log_ctx_s ngx_http_log_ctx_t;
(gdb)l结构ngx_http_请求
未定义函数“struct”。

在gdb中是否可能?

您可以打印使用该类型声明的变量的值:

ngx_http_request_t foo;

(gdb)print foo

您可以打印使用该类型声明的变量的值:

ngx_http_request_t foo;

(gdb)print foo

l
通常与行号一起使用,以查看特定的代码行,尽管它可以与函数名一起使用。
由于
struct
不是行号或函数名,因此无法查看其定义。
您希望得到什么类型的输出?

看起来您确实需要结构中的数据值,这意味着您必须首先创建该类型的结构。

l
通常与行号一起使用,以查看特定的代码行,尽管它可以与函数名一起使用。
由于
struct
不是行号或函数名,因此无法查看其定义。
您希望得到什么类型的输出?

看起来您真的需要结构中的数据值,这意味着您必须首先创建该类型的结构。

尝试
ptype ngx\u http\u request\t
尝试
ptype ngx\u http\u request\t

如果找不到用该类型声明的变量怎么办?yakatz是对的。你需要一个这种类型的变量来检查它。如果我找不到用这种类型声明的变量怎么办?yakatz是对的。您需要该类型的变量来检查它。对于lldb,命令是
im loo-t ngx_http_request_t
(对于搜索gdb的lldb用户)对于lldb,命令是
im loo-t ngx_http_request_t
(对于搜索gdb的lldb用户)