C
浮沉飘摇
Linux C
展开
-
[C基础]栈、单向链表和队列的简易C实现
C语言比较偏底层,很多常用的数据结构需要自己实现,不像高等语言直接就有现成的类库可使用。1. 栈定义和实现下面是一个栈的简易实现,适合新人入门参考。可以方便的对任意数据类型进行压栈出栈操作。#define MAX_STACK_DEPTH 4096typedef struct _STACK{ void *Array[MAX_STACK_DEPTH]; int Depth; void (*Push)(struct _STACK *,void *); void原创 2022-03-27 15:16:59 · 1378 阅读 · 0 评论 -
[crash分析]让我头疼了好久的一个dst_entry重复释放导致的crash问题
公司产品在升级后出现了crash,分析发现在释放skb时,skb->sp = ffff000000000011,不为NULL,在 secpath_put(skb->sp)时,地址访问异常crash。PID: 8233 TASK: ffff8800d0503ec0 CPU: 0 COMMAND: "in:imklog" #0 [ffff88011fc03710] machine_kexec at ffffffff81059bab #1 [ffff88011fc03770] __cr原创 2020-09-04 22:56:47 · 1445 阅读 · 0 评论 -
[crash分析]slab内存重叠导致的crash问题
公司设备升级新版本后,出现了crash,描述"general protection fault: 0000 [#1] SMP ",初步看来是访问了异常地址。异常栈如下:PID: 945 TASK: ffff880079231f60 CPU: 0 COMMAND: "config_t/0" #0 [ffff88001037f9d0] machine_kexec at ffffffff81059bab #1 [ffff88001037fa30] __crash_kexec at ffffff原创 2020-08-31 22:18:47 · 1827 阅读 · 0 评论 -
[softlockup crash分析]业务逻辑异常导致的deadloop
公司产品在线上运行中出现了softlockup导致的crash。crash> btPID: 23 TASK: ffff8801694a4e70 CPU: 3 COMMAND: "ksoftirqd/3" #0 [ffff88102d2c3cf0] machine_kexec at ffffffff81059beb #1 [ffff88102d2c3d50] __crash_kexec at ffffffff81105822 #2 [ffff88102d2c3e20] panic原创 2020-08-12 13:44:01 · 321 阅读 · 0 评论 -
[crash分析]“Kernel panic - not syncing: Aiee, killing interrupt handler”“BUG: scheduling while atomic“
PANIC信息不太常见,crash栈也没太多信息,COMMAND:“rmmod”提示可能是卸载模块时导致的crash。PID: 14829 TASK: ffff88007b478000 CPU: 0 COMMAND: "rmmod" #0 [ffff88004a157b38] machine_kexec at ffffffff81059bab #1 [ffff88004a157b98] __crash_kexec at ffffffff81105812 #2 [ffff88004a157c6原创 2020-07-05 22:16:37 · 848 阅读 · 0 评论 -
[crash分析]数组越界导致的导致的系统crash
公司设备在项目中遇到了crash问题,查看coredump,是最长前缀匹配的模块中处理异常导致。现象1:查询异常"general protection fault: 0000 [#1] SMP " [exception RIP: _test_ipset_seg_lpm_query+93] RIP: ffffffffa058ce9d RSP: ffff88016951f578 RFLAGS: 00010207 RAX: 80000010241c2865 RBX: ffff8原创 2020-06-23 22:44:30 · 1148 阅读 · 0 评论