上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 41 下一页
摘要: 有时我们得到了某个结构体的地址,这个结构体内部有一个指向另外一个数据结构的指针,那么如何快速输出另外一个数据的内容。 这里有两种方法,还是以task_struct为例,我想输出mm成员的内容: 方法1 根据结构体的地址输出指针成员的值,然后再进行二次引用 crash> *task_struct.mm 阅读全文
posted @ 2023-09-24 21:41 dolinux 阅读(338) 评论(0) 推荐(0)
摘要: 以下面的task_struct为例: crash> *task_struct -ox ffff893e3846e000 struct task_struct { [ffff893e3846e000] struct thread_info thread_info; [ffff893e3846e010] 阅读全文
posted @ 2023-09-24 21:29 dolinux 阅读(237) 评论(0) 推荐(0)
摘要: 方法1 使用ps获取进程的task_struct地址,然后得到mm_struct地址 crash> ps | grep bash 6666 96253 8 ffff88a07fd42000 IN 0.0 24268 3048 bash 8288 59636 14 ffff88fdc4678000 I 阅读全文
posted @ 2023-09-24 18:41 dolinux 阅读(308) 评论(0) 推荐(0)
摘要: crash提供了vm命令来输出进程的vma相关的信息。 输出当前当进程的vma列表 crash> vm PID: 3319 TASK: ffff889760358000 CPU: 6 COMMAND: "kvm" MM PGD RSS TOTAL_VM ffff893ada165000 ffff89 阅读全文
posted @ 2023-09-24 18:19 dolinux 阅读(224) 评论(0) 推荐(0)
摘要: 在linux系统中可以通过/proc/slabinfo获取slab的统计数据,crash提供了kmem来实现这个功能。 查看系统每个kmem_cache的概要信息 crash> kmem -s CACHE OBJSIZE ALLOCATED TOTAL SLABS SSIZE NAME ffff88 阅读全文
posted @ 2023-09-24 16:47 dolinux 阅读(326) 评论(0) 推荐(0)
摘要: 将page的flags转换为可读字符串 crash> kmem -g 01fffe00000a001c FLAGS: 1fffe00000a001c PAGE-FLAG BIT VALUE PG_referenced 2 0000004 PG_uptodate 3 0000008 PG_dirty 阅读全文
posted @ 2023-09-24 15:49 dolinux 阅读(82) 评论(0) 推荐(0)
摘要: linux中page数据结构可以通过mem_map数组访问,下面的方法可以输出每个page的相关成员。 通用版本 下面这个命令可以显示每个page的一些关键成员的值。 crash> kmem -p PAGE PHYSICAL MAPPING INDEX CNT FLAGS ffffea0000000 阅读全文
posted @ 2023-09-24 15:13 dolinux 阅读(242) 评论(0) 推荐(0)
摘要: crash> kmem -n NODE SIZE PGLIST_DATA BOOTMEM_DATA NODE_ZONES 0 100925439 ffff88e03ffc1000 ffff88e03ffc1000 ffff88e03ffc5000 ffff88e03ffc9000 ffff88e03 阅读全文
posted @ 2023-09-24 15:04 dolinux 阅读(107) 评论(0) 推荐(0)
摘要: crash> kmem -v VMAP_AREA VM_STRUCT ADDRESS RANGE SIZE ffff88debf51c900 ffff88debf53bd00 ffffc90000000000 - ffffc90000002000 8192 ffff88debf51cf60 ffff 阅读全文
posted @ 2023-09-24 14:40 dolinux 阅读(85) 评论(0) 推荐(0)
摘要: 通用统计信息 crash> kmem -i PAGES TOTAL PERCENTAGE TOTAL MEM 197646761 754 GB FREE 33983015 129.6 GB 17% of TOTAL MEM USED 163663746 624.3 GB 82% of TOTAL M 阅读全文
posted @ 2023-09-24 14:37 dolinux 阅读(347) 评论(0) 推荐(0)
摘要: crash> mach MACHINE TYPE: x86_64 MEMORY SIZE: 766.5 GB CPUS: 96 PROCESSOR SPEED: 2200 Mhz HZ: 250 PAGE SIZE: 4096 KERNEL VIRTUAL BASE: ffff88800000000 阅读全文
posted @ 2023-09-24 12:55 dolinux 阅读(134) 评论(0) 推荐(0)
摘要: crash> mach -c CPU 0: struct cpuinfo_x86 { x86 = 6 '\006', x86_vendor = 0 '\000', x86_model = 85 'U', x86_stepping = 7 '\a', x86_tlbsize = 0, x86_virt 阅读全文
posted @ 2023-09-24 12:45 dolinux 阅读(169) 评论(0) 推荐(0)
摘要: crash> mach -m PHYSICAL ADDRESS RANGE TYPE 0000000000000000 - 0000000000001000 E820_RESERVED 0000000000001000 - 000000000006e000 E820_RAM 000000000006 阅读全文
posted @ 2023-09-24 12:43 dolinux 阅读(107) 评论(0) 推荐(0)
摘要: 通过sym可以将内核地址转换成内核符号,或者将内核符号转换成内核地址。 根据地址转换为符号 函数地址 crash> sym ffffffff8166f300 ffffffff8166f300 (T) blk_update_request+16 /home/pengdl/x86_64/linux-6. 阅读全文
posted @ 2023-09-24 12:06 dolinux 阅读(136) 评论(0) 推荐(0)
摘要: 查看所有的内核符号以及地址 crash> sym -l 0 (D) __per_cpu_start 0 (D) irq_stack_union 4000 (D) cpu_debug_store 5000 (D) cpu_tss_rw 8000 (D) gdt_page 9000 (d) except 阅读全文
posted @ 2023-09-24 11:44 dolinux 阅读(182) 评论(0) 推荐(0)
摘要: crash —— 如何知道哪些数据结构内嵌了指定的数据结构或者内嵌了指向指定数据结构的指针 阅读全文
posted @ 2023-09-24 11:08 dolinux 阅读(51) 评论(0) 推荐(0)
摘要: 需求 有时我们有这样的需求,比如我们知道了结构体task_struct,然后我们又想知道内核中有哪些数据结构中包含了task_struct,或者包含了指向task_struct的指针。 做法 用whatis -m可以做到: crash> whatis -m task_struct SIZE TYPE 阅读全文
posted @ 2023-09-24 11:06 dolinux 阅读(107) 评论(0) 推荐(0)
摘要: whatis 如果提前知道数据类型的定义,可以直接用struct、union等,否则可以直接用whatis。 crash> whatis -o page struct page { [0] unsigned long flags; union { struct { union { [8] struc 阅读全文
posted @ 2023-09-24 10:49 dolinux 阅读(705) 评论(0) 推荐(0)
摘要: 在crash中可以用whatis命令查看数据类型信息以及函数的原型。 如果想知道某个数据是什么类型那么可以用下面的方法: 查看结构体的定义 crash> whatis mm_struct struct mm_struct { struct { struct maple_tree mm_mt; uns 阅读全文
posted @ 2023-09-24 10:04 dolinux 阅读(186) 评论(0) 推荐(0)
摘要: crash提供了eval命令,实现了一些很好用的功能,下面学习一下。 格式: eval [-b][-l] (表达式) | 值 支持的运算符:+ - & | ^ * % / << >> 下面是需要注意的: 括号并不是必须的,但是如果使用了|、<<或者>>,那么需要使用括号 crash> eval (1 阅读全文
posted @ 2023-09-23 22:55 dolinux 阅读(184) 评论(0) 推荐(0)
摘要: crash的dev命令可以获取系统磁盘IO的统计数据。 获取所有磁盘的IO统计数据 crash> dev -d MAJOR GENDISK NAME REQUEST_QUEUE TOTAL ASYNC SYNC 8 ffff88de95d51000 sdm ffff88de94a90000 6537 阅读全文
posted @ 2023-09-23 22:09 dolinux 阅读(145) 评论(0) 推荐(0)
摘要: 在linux中通过/proc/ioport和/proc/iomem可以获取系统的IO端口和内存的布局信息,在crash中需要使用dev命令来获取。 crash> dev -i RESOURCE RANGE NAME ffffffff822668c0 0000-ffff PCI IO ffff88de 阅读全文
posted @ 2023-09-23 21:50 dolinux 阅读(91) 评论(0) 推荐(0)
摘要: 在linux系统上用lspci可以查看PCI设备信息,crash的dev命令也提供了这个功能。 crash> dev -p ROOT BUS BUSNAME ffff893eaeb43000 0000:00 PCI DEV DO:BU:SL.FN CLASS PCI_ID TYPE ffff88de 阅读全文
posted @ 2023-09-23 21:43 dolinux 阅读(157) 评论(0) 推荐(0)
摘要: 通过sys命令可以获取当前系统的系统调用的信息: crash> sys -c NUM SYSTEM CALL FILE AND LINE NUMBER 0 __x64_sys_read ../fs/read_write.c: 621 1 __x64_sys_write ../fs/read_writ 阅读全文
posted @ 2023-09-23 21:34 dolinux 阅读(103) 评论(0) 推荐(0)
摘要: 在编译内核时如果配置了CONFIG_IKCONFIG,那么内核配置文件会被内嵌到内核中,那么可以通过crash工具将其输出出来。 crash> sys config # # Automatically generated file; DO NOT EDIT. # Linux/x86 4.18.0 K 阅读全文
posted @ 2023-09-23 20:03 dolinux 阅读(498) 评论(0) 推荐(0)
摘要: 在linux上一般通过dmidecode来获取DMI信息,crash也提供了获取DMI信息的命令,不过内容不会像dmidecode那么详细。 crash> sys -i DMI_BIOS_VENDOR: SeaBIOS DMI_BIOS_VERSION: rel-1.14.0-0-g155821a1 阅读全文
posted @ 2023-09-23 17:59 dolinux 阅读(123) 评论(0) 推荐(0)
摘要: 使用crash工具根据地址查看结构体的内容时,有时需要输入struct或者union,多少有些繁琐,crash提供了*命令,直接跟在结构体或者联合体的名字的前面即可。 示例: 带struct crash> struct kmem_cache -x ffff893751f60800 struct km 阅读全文
posted @ 2023-09-23 17:36 dolinux 阅读(161) 评论(0) 推荐(0)
摘要: 作者 [email protected] 查看percpu变量在每个cpu上的基地址 crash> kmem -o PER-CPU OFFSET VALUES: CPU 0: ffff88807f600000 CPU 1: ffff88807fa00000 CPU 2: ffff88813 阅读全文
posted @ 2023-09-23 16:59 dolinux 阅读(1311) 评论(0) 推荐(0)
摘要: 作者 [email protected] 背景 内核在/proc、/sys下面提供了大量的控制文件,可以获取内核某个子系统的状态或者控制内核的执行流,有时我们需要快速确认操作某个节点时的执行流,那么怎么做呢? 做法 最适合做这个就是ftrace提供的function graph跟踪器,在6 阅读全文
posted @ 2023-09-22 21:21 dolinux 阅读(118) 评论(0) 推荐(0)
摘要: 休眠 在虚拟机中执行下面的命令: # echo mem > /sys/power/state 唤醒 进入monitor模式:ctrl+a c (qemu) system_wakeup 查看日志 查看虚拟机的内核日志: [ 63.878427] PM: suspend entry (deep) [ 6 阅读全文
posted @ 2023-09-22 20:44 dolinux 阅读(605) 评论(0) 推荐(0)
摘要: 场景 如果虚拟机没有开启kdump,或者卡死了,那么可以进入qemu的monitor模式将虚机的内存保存到文件中,然后使用crash工具进行分析。 示例 启动虚拟机,然后按ctrl+a c进入monitor,查看帮助 (qemu) help dump-guest-memory dump-guest- 阅读全文
posted @ 2023-09-22 20:26 dolinux 阅读(1599) 评论(0) 推荐(0)
摘要: 参考 https://blog.csdn.net/cuma2369/article/details/107667731 https://support.mozilla.org/en-US/questions/1307935 点击设置 -> 配置编辑器: 然后搜索mailnews.wraplength 阅读全文
posted @ 2023-09-13 17:10 dolinux 阅读(111) 评论(0) 推荐(0)
摘要: pahole这个工具可以用来分析结构体的内部布局信息,参考下面的文章: https://lwn.net/Articles/335942/ 阅读全文
posted @ 2023-09-10 23:25 dolinux 阅读(582) 评论(0) 推荐(0)
摘要: # 参考 - [DELL R730 iDRAC与IPMI的使用](https://blog.csdn.net/satsuma_samurai/article/details/74940145 "DELL R730 iDRAC与IPMI的使用") - [Linux上使用IPMITool常用的命令](h 阅读全文
posted @ 2023-09-03 14:11 dolinux 阅读(99) 评论(0) 推荐(0)
摘要: # 参考 - [A study of the Linux kernel PCI subsystem with QEMU](https://blogs.oracle.com/linux/post/a-study-of-the-linux-kernel-pci-subsystem-with-qemu " 阅读全文
posted @ 2023-09-01 16:53 dolinux 阅读(725) 评论(0) 推荐(0)
摘要: # 参考 - [公开 VMware 硬件辅助的虚拟化](https://docs.vmware.com/cn/VMware-vSphere/6.7/com.vmware.vsphere.vm_admin.doc/GUID-2A98801C-68E8-47AF-99ED-00C63E4857F6.ht 阅读全文
posted @ 2023-08-20 23:31 dolinux 阅读(133) 评论(0) 推荐(0)
摘要: # 参考 - [如何用一台UPS控制多台主机的断电自动关机?NetworkUPSTools(NUT)的安装与配置](https://www.zhihu.com/tardis/zm/art/282181425 "如何用一台UPS控制多台主机的断电自动关机?NetworkUPSTools(NUT)的安装 阅读全文
posted @ 2023-08-19 12:07 dolinux 阅读(5390) 评论(0) 推荐(0)
摘要: 书籍 《UEFI编程实践》 技术博客 罗冰的UEFI开发专栏 https://www.lab-z.com/iof/ UEFI入门必读的12本书 阅读全文
posted @ 2023-08-17 20:24 dolinux 阅读(271) 评论(0) 推荐(0)
摘要: # 参考 - 《UEFI编程实践》 - https://github.com/tianocore/edk2 # 作者 [email protected] # 概述 在Ubuntu中安装ubuntu18.04的容器环境,在其中搭建编译和开发环境,支持运行UEFI模拟器。 # 步骤 ## 安装 阅读全文
posted @ 2023-08-17 16:58 dolinux 阅读(1266) 评论(0) 推荐(0)
摘要: 由于买的T620主要是自己玩,不需要特别高的配置,不需要组raid,就让卖家把H710阵列卡换成了[直通的H310阵列卡](https://www.bilibili.com/read/cv5583360/ "直通的H310阵列卡")(non raid),这样家里富裕的sata固态和机械硬盘就可以直接 阅读全文
posted @ 2023-08-15 21:05 dolinux 阅读(457) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 41 下一页