crash —— 如何查看数据是什么类型以及函数原型

简介: crash —— 如何查看数据是什么类型以及函数原型

在crash中可以用whatis命令查看数据类型信息以及函数的原型。

如果想知道某个数据是什么类型那么可以用下面的方法:

查看结构体的定义

crash> whatis mm_struct
struct mm_struct {
struct {
struct maple_tree mm_mt;
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned lon;
        unsigned long mmap_base;
        unsigned long mmap_legacy_base;
...

上面显示mm_struct是一个结构体,那么也可以用struct命令:

crash> struct mm_struct
struct mm_struct {
struct {
struct maple_tree mm_mt;
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned lon;
        unsigned long mmap_base;
        unsigned long mmap_legacy_base;
...

查看联合体的定义

crash> whatis snd_pcm_sync_id
union snd_pcm_sync_id {
unsigned char id[16];
unsigned short id16[8];
unsigned int id32[4];
}
SIZE: 16

查看typedef类型

crash> whatis call_single_data_t
typedef struct __call_single_data {
struct __call_single_node node;
smp_call_func_t func;
void *info;
} call_single_data_t;
SIZE: 32
crash> whatis cpumask_var_t
typedef struct cpumask {
unsigned long bits[1];
} [1] cpumask_var_t;
SIZE: 8
crash> whatis smp_call_func_t
typedef void (*)(void *) smp_call_func_t;
SIZE: 8

查看枚举类型的定义

crash> whatis acpi_execute_type
typedef enum {
  OSL_GLOBAL_LOCK_HANDLER = 0
  OSL_NOTIFY_HANDLER = 1
  OSL_GPE_HANDLER = 2
  OSL_DEBUGGER_MAIN_THREAD = 3
  OSL_DEBUGGER_EXEC_THREAD = 4
  OSL_EC_POLL_HANDLER = 5
  OSL_EC_BURST_HANDLER = 6
} acpi_execute_type;
crash> whatis pageflags
enum pageflags {
  PG_locked = 0
  PG_referenced = 1
  PG_uptodate = 2
  PG_dirty = 3
  PG_lru = 4
  PG_active = 5
  PG_workingset = 6
  PG_waiters = 7
  PG_error = 8
  PG_slab = 9
  PG_owner_priv_1 = 10
  PG_arch_1 = 11
  ...
};

查看函数原型

crash> whatis blk_update_request
bool blk_update_request(struct request *, blk_status_t, unsigned int);

查看全局变量的类型

crash> whatis cfd_data
struct call_function_data cfd_data;
相关文章
|
3月前
|
监控 Serverless 开发者
函数计算发布功能问题之查看函数的调用日志的问题如何解决
函数计算发布功能问题之查看函数的调用日志的问题如何解决
|
2月前
crash —— 如何获取结构体成员指向的结构的内容?
crash —— 如何获取结构体成员指向的结构的内容?
|
5月前
|
运维 安全 Serverless
函数计算产品使用问题之登陆函数实例之后如何查看函数的日志
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
弹性计算 前端开发 Serverless
Serverless 应用引擎操作报错合集之在阿里云函数计算中,调用了FC函数但是没有执行或者报错,并且在FC函数后台也看不到调用记录日志如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
存储 安全 C语言
free函数的用法和注意事项
free函数的用法和注意事项
151 0
|
6月前
|
存储 监控 Serverless
在处理阿里云函数计算3.0版本的函数时,如果遇到报错但没有日志信息的情况
在处理阿里云函数计算3.0版本的函数时,如果遇到报错但没有日志信息的情况【1月更文挑战第23天】【1月更文挑战第114篇】
100 5
|
6月前
|
SQL 数据库连接 数据库
ODBC配置数据源及相关问题(“找不到工程和库”“实时错误91对象变量或with块变量未设置”等)
ODBC配置数据源及相关问题(“找不到工程和库”“实时错误91对象变量或with块变量未设置”等)
|
存储 调度
dump_stack分析函数调用关系实例及其实现
dump_stack分析函数调用关系实例及其实现
159 0
|
程序员 编译器 C++
VC 2015 调用栈查看主函数调用详情的设置
VC 2015 调用栈查看主函数调用详情的设置
98 0