probe 或 kprobe 内核服务

用途

使用症状字符串记录错误。

库 (用于探测)

运行时服务库。

语法

#include <sys/probe.h>
or
#include <sys/sysprobe.h>
int probe ( probe_p)
probe_t *probe_p
int kprobe (probe_p)
probe_t *probe_p

描述

探测器子例程将一个条目记录到错误日志中。 该条目由 errlog 子例程和 err_rec.h 头文件中定义的错误日志条目以及症状字符串组成。

探测 子例程是从应用程序调用的,而 克探针 是从内核和内核扩展调用的。 除了返回码之外, 探测克探针 都具有相同的接口。

IBM软件应使用sys/sysprobe.h头文件,而IBMIBM 程序应包含sys/probe.h文件。 这是因为 IBM 症状字符串必须符合与非IBM 字符串不同的规则。 它还会告知任何电子支持应用程序是否将症状字符串路由到 IBM的 Retain 数据库。

参数

描述
Probe_p 是一个指向数据结构的指针,该数据结构包含错误记录的指针和长度,以及用于探测的数据。 错误记录在 errlog 子例程下描述,并在 err_rec.h中定义。

结构的第一个词是识别结构的这一版本的神奇数字。 神奇的数字应该设置为PROBE_MAGIC.

注意: PROBE_MAGICprobe.hsysprobe.h 之间不同,以区分 IBM 症状字符串与非IBM 字符串。

探测器数据包含控制探测器处理的标志,症状字符串关键字的数目,后跟一个数组,该数组由每个关键字的一个元素组成。

标志

描述
SSNOSEND 指示不应将此症状字符串转发至自动问题打开工具。 应使用 SSNOSEND 的一个示例是用于调试目的的症状数据。
恩斯考德 这给出了指定的关键字的数量 (即) , Sskwds 数组中的元素数。
斯克夫兹 这是一个关键字/值对的数组。 这些关键字及其值在下表中。 I/S 值指示 关键字 是参考性的,还是记录的症状字符串的一部分。 括号中的数字表示 (如果适用) 最大字符串长度。
keyword          I/S   value   type   Description

SSKWD_LONGNAME   I     char *  (30)   Product's long name
SSKWD_OWNER      I     char *  (16)   Product's owner
SSKWD_PIDS       S     char *  (11)   product id.
(required for IBM symptom strings)
SSKWD_LVLS       S     char *  (5)    product level 
																			(required for IBM symptom strings)
SSKWD_APPLID     I     char *  (8)    application id.
SSKWD_PCSS       S     char *  (8)    probe id 
																			(required for all symptom strings)
SSKWD_DESC       I     char *  (80)   problem description
SSKWD_SEV        I     int            severity from 
																			1 (highest) to 4 (lowest).
																		  3 is the default.
SSKWD_AB         S     char *  (5)    abend code
SSKWD_ADRS       S     void *         address. If used at all, 
																			this should be a relative address.
SSKWD_DEVS       S     char *  (6)    Device type
SSKWD_FLDS       S     char *  (9)    arbitrary character string. 
																			This is usually a field name and
                                      the SSKWD_VALUE 
																			keyword specifies the value.
SSKWD_MS         S     char *  (11)   Message number
SSKWD_OPCS       S     char *  (8)    OP code
SSKWD_OVS        S     char *  (9)    overwritten storage
SSKWD_PRCS       S                    unsigned long return code
SSKWD_REGS       S     char *  (4)    Register name (e.g.) 
																			GR15 or LR unsigned long Value
SSKWD_VALU       S
SSKWD_RIDS       S     char *  (8)    resource or module id.
SSKWD_SIG        S .   int            Signal number
SSKWD_SN         S     char *  (7)    Serial Number
SSKWD_SRN        S     char *  (9)    Service Req. Number If specified,
																			and no error is logged,
                                      a hardware error is assumed.
SSKWD_WS         S     char *  (10)   Coded wait
注: SSKWD_PCCS 值始终是必需的。 这是探测器的标识。 此外,对于 IBM 症状字符串, SSKWD_PIDSSSKWD_LVLS 关键字也是必需的

如果 Probe_rec 结构中的 勃起勃起 字段为:0那么不会传递任何错误日志记录,并且将使用症状字符串的其中一个缺省模板。 除非指定了 SSKWD_SRN 关键字,否则将使用指示软件错误的缺省模板。 如果是,那么会假定该错误是硬件错误。 如果您不想使用症状字符串来记录自己的错误,并且希望发生硬件错误,并且不想使用 SSKWD_SRN 值,那么可以使用错误标识 ERRID_HARDWARE_症状来提供错误日志记录,请参阅 /usr/include/sys/errids.h 文件。

探测器子例程的返回值

描述
重大安全事件数量 成功
-1 错误。 错误号变量设置为
EINVAL 指示无效参数
EFAULT 指示无效地址

返回 kprobe Kernal 服务的值

描述
重大安全事件数量 成功
EINVAL 指示无效参数

执行环境

探测 是从应用程序环境执行的。

克探针 是从内核和内核扩展执行的。 当前,不能在禁用中断的情况下调用 克探针

文件

描述
/usr/include/sys/probe.h 包含参数定义。