查找当前目录下所有文件中的文本:grep "text" * -nR

博客给出了一个grep命令的使用示例,即使用grep \text\ * -nR来搜索文本。grep是信息技术领域常用的文本搜索工具,此命令可在指定范围内查找包含特定文本的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

grep "text" * -nR
Line 6524: 10-23 14:33:56.475 26964 26964 I AEE_AEDV: Line 6525: 10-23 14:33:56.475 26964 26964 I AEE_AEDV: Line 6526: 10-23 14:33:56.475 26964 26964 I AEE_AEDV: ELM r/wlat:PASS Line 6527: 10-23 14:33:56.475 26964 26964 I AEE_AEDV: AP detect MDEE time:25221.780195 Line 6528: 10-23 14:33:56.475 26964 26964 I AEE_AEDV: MD:unlwctg*MT6833_S00*MOLY.NR15.R3.MP.V137.4.P14*2024/08/30 15:15*TK_MD*NLWCG_MP_6833*Release Line 6529: 10-23 14:33:56.475 26964 26964 I AEE_AEDV: AP:unlwctg*MT6833*1d300000 (MD)1d300000 Line 6530: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: == EXTERNAL EXCEPTION LOG == Line 6531: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xAB000005 0x0000000C 0x0055434D 0x00000000 Line 6532: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x01000000 0x50495355 0x53555F30 0x00305049 Line 6533: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x50495355 0x53555F31 0x00305049 0x50495355 Line 6534: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x53555F32 0x00315049 0x50495355 0x53555F33 Line 6535: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00315049 0x30514353 0x5143535F 0x00003631 Line 6536: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x31514353 0x5143535F 0x00003631 0x32514353 Line 6537: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x5143535F 0x00003631 0x33514353 0x5143535F Line 6538: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00003631 0x3233444D 0x4B41525F 0x00000045 Line 6539: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x4E4F534D 0x00304349 0x00000000 0x4E4F5356 Line 6540: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00304349 0x00000000 0x0100001D 0x000003DE Line 6541: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x0000001D 0x90937DA0 0x90937DEC 0xCCCCCCCC Line 6542: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xCCCCCCCC 0x00000001 0x00000000 0x00006003 Line 6543: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x28C28F40 0x90937DA0 0x90937DEC 0x00000001 Line 6544: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00800074 0x00000000 0x00000000 0x00000000 Line 6545: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6546: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6547: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6548: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6549: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6550: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6551: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6552: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6553: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6554: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6555: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6556: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6557: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6558: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x0000000C 0xEE0007FF 0x32E24649 Line 6559: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xEE0007FF 0x33102A8B 0xEE0007FF 0x32E2AE3C Line 6560: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xEE0007EF 0x33307186 0xEE0007FF 0x32E24663 Line 6561: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xEE0007FF 0x32E24663 0xEE0007FF 0x32E2464A Line 6562: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xEE0007FF 0x32E2464D 0xEE0007FF 0x32E2464D Line 6563: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xEE0007FF 0x32E2464C 0xEE0007FF 0x32E2464C Line 6564: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0xEE0007FF 0x32E2464C 0x00000000 0x00000280 Line 6565: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000400 0x01010000 0x01010101 0x01010101 Line 6566: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000101 0x00000000 0x00000000 0x00000000 Line 6567: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000000 0x00000000 0x00000000 0x00000000 Line 6568: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x00000680 0x00001488 0x000014E4 0x00001540 Line 6569: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x0000159C 0x000015F8 0x00001654 0x000016B0 Line 6570: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x0000170C 0x000017A8 0x0000180C 0x0000186C Line 6571: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x4F46415B 0x5F444E55 0x49474542 0x4C0A5D4E Line 6572: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x6C656261 0x4F4D203A 0x4E2E594C 0x2E353152 Line 6573: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x4D2E3352 0x31562E50 0x342E3733 0x3431502E Line 6574: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x5657530A 0x69737265 0x203A6E6F 0x3531524E Line 6575: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x2E33522E 0x5420504D 0x444D5F4B 0x574C4E20 Line 6576: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 0x4D5F4743 0x38365F50 0x420A3333 0x646 Line 6577: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: Core dump Info: Line 6578: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: path: /proc/aed/current-ee-coredump Line 6579: 10-23 14:33:56.477 26964 26964 I AEE_AEDV: 分析一下
最新发布
06-17
<think>我们正在分析手机(特别是MT6833平台)的minidump日志,例如AEE_AEDV日志记录。根据引用内容,我们可以结合Windows工具(如Windbg)和Linux工具(如addr2line)进行分析,但手机环境更偏向于使用Linux工具链。下面将详细说明解析步骤:###一、获取并准备minidump文件1.**获取AEE_AEDV日志文件**-在Android设备上,AEE(AndroidExceptionEngine)日志通常位于`/data/aee_exp`或`/data/vendor/mtklog/aee_exp`目录,包含如`AEE_AEDV_XXXXXX`的文件夹,里面有`db.fatal.00.SWT.dbg`(即minidump)和`exp_main`(文本日志)等文件[^2]。-使用ADB导出(需root权限):```bashadbpull/data/aee_exp/AEE_AEDV_XXXXXXdbg_files```2.**准备符号文件**-MT6833平台(如天玑系列芯片)的崩溃通常涉及内核或驱动模块。需要准备:-对应设备内核版本的`vmlinux`(未压缩的内核镜像,包含完整符号)。-发生崩溃的用户态进程的带调试信息的二进制文件(如`.so`或可执行文件)。###二、使用工具解析minidump####方法1:使用GDB解析(推荐)1.**加载minidump到GDB**-确保GDB支持ARM架构(如`gdb-multiarch`)。-加载内核符号文件:```bashgdb-multiarchvmlinux(gdb)targetremote:1234#若需远程调试则设置,否则跳过(gdb)restoredb.fatal.00.SWT.dbgbinary0x00xffff_ffff```-查看崩溃线程的寄存器状态:```bash(gdb)inforegisters```重点关注`PC`(程序计数器)、`LR`(返回地址)和`SP`(栈指针)。2.**反汇编定位崩溃点**-通过PC寄存器地址反汇编附近代码:```bash(gdb)disassemble/r$pc-32,$pc+32```####方法2:使用addr2line解析堆栈(适用于用户态崩溃)1.**提取崩溃地址**-打开`exp_main`文本日志,查找关键行:```[BACKTRACE]#00pc000000000002b4e8/system/lib64/libutils.so(android::Looper::pollInner(int)+916)````000000000002b4e8`即为崩溃地址。2.**使用addr2line解析**:```bashaarch64-linux-android-addr2line-elibutils.so000000000002b4e8```-输出格式:`文件:行号`(如`/system/core/libutils/Looper.cpp:520`)。###三、分析AEE_AEDV日志中的关键信息在`exp_main`文件中关注以下部分:1.**异常类型**:```[EXCEPTION]signal:11(SIGSEGV),code:1(SEGV_MAPERR),faultaddr:0x0000000000000000```-`signal11`:段错误(非法内存访问)。-`faultaddr0x0`:通常表示解引用空指针。2.**寄存器状态**:```[REGISTERS]x00000000000000000x10000007fe4b5a1e0x20000000000000000x30000000000000000...lr0000007f4d1a14e8sp0000007fe4b59e90pc0000007f4d1a14f0```-`pc`指向崩溃时的指令地址,`lr`指向函数返回后的地址。3.**堆栈回溯**:```[BACKTRACE]#00pc00000000000144f0/system/lib64/libc.so(pthread_mutex_lock+8)#01pc000000000002b4e8/system/lib64/libutils.so(android::Looper::pollInner(int)+916)```###四、MTK平台特有工具(如GAT工具)联发科提供**GAT(GlobalArchitectureTool)**用于解析AEE日志:1.下载GAT工具包(需联发科授权)。2.运行解析命令:```bashgat-fdb.fatal.00.SWT.dbg-svmlinux```-输出完整的调用堆栈和寄存器分析。###五、常见崩溃原因及定位1.**空指针解引用**-`faultaddr`为`0x0`或小地址(如`0x8`)。-检查`pc`附近指令是否包含`LDR`或`STR`(ARM加载/存储指令)。2.**堆栈溢出**-查看`SP`寄存器值是否接近线程栈边界(如线程栈起始地址为`0x7fe4b58000`,则`SP=0x7fe4b59e90`表示已使用`0x1e90`字节)。3.**竞态条件**-崩溃点位于锁操作函数(如`pthread_mutex_lock`)。-结合多线程堆栈分析死锁(`exp_main`中包含所有线程堆栈)。>⚠️**注意事项**:>-MTK平台的内核崩溃可能涉及**HWT(HardwareTrace)**,需结合`db.fatal.00.HWT`分析。>-若符号解析失败(显示`??:0`),检查:>1.符号文件是否匹配崩溃版本。>2.地址是否在模块的有效范围内(通过`readelf-Slibutils.so`查看`.text`段范围)。---###§§相关问题§§1.如何获取MTK手机的内核符号文件(vmlinux)?2.解析AEE_AEDV日志时出现“sectionheadersnotfound”错误怎么办?3.联发科GAT工具的使用有哪些高级技巧?4.如何分析AndroidNative崩溃中的HWT文件?</think>要解析和定位 MT6833 平台手机 minidump 日志中的异常(如 AEE_AEDV 日志记录),需结合联发科(MTK)平台的特性进行分析。以下是专业解析流程: --- ### 一、MTK 平台 minidump 文件获取与准备 1. **获取 AEE_AEDV 日志文件** - MTK 设备的崩溃日志通常位于: ```bash /data/vendor/mtklog/aee_exp/ # Android 10+ 路径 /data/aee_exp/ # 旧版路径 ``` - 包含关键文件- `db.fatal.00.SWT.dbg`:minidump 核心文件 - `exp_main`:文本格式的崩溃摘要 - `AEE_AEDV_xxxxxx`:原始日志目录[^2] 2. **准备 MTK 专用符号文件** - **内核符号**:获取与设备内核版本完全匹配的 `vmlinux` 文件 - **驱动符号**:需 MTK 提供的特定驱动模块符号(如 `ccci.ko`, `mtk_camerafs.ko`) - **用户态符号**:带调试信息的可执行文件(如 `system/bin/mediaserver`) --- ### 二、MTK minidump 分析工具链 #### 方法 1:使用 MTK 官方工具 GAT (Global Architecture Tool) ```bash # 解压 minidump gat -unpack db.fatal.00.SWT.dbg # 符号化分析 gat -f db.fatal.00.SWT.dbg -s vmlinux -m driver.ko > crash_report.txt ``` **输出关键信息**: 1. `Exception Type: SIGSEGV (SEGV_MAPERR)` → 内存非法访问 2. `Fault Address: 0x00000000` → 典型空指针解引用 3. `Call Trace: [<0xffffffc000123456>] mtk_camera_proc+0x123/0xabc` → 驱动崩溃点 #### 方法 2:手动解析(无 GAT 时) 1. **提取崩溃地址**: ```bash # 从 exp_main 获取 PC 值 grep "PC :" exp_main # 输出示例:PC : 0xffffffc000a8b1d4 ``` 2. **使用 addr2line 解析**: ```bash aarch64-linux-android-addr2line -e vmlinux 0xffffffc000a8b1d4 ``` - 输出格式:`驱动文件:行号` (如 `mtk_camera.c:1523`) --- ### 三、MTK 特有崩溃模式分析 #### 案例:AEE_AEDV 日志中的典型问题 ```log [MTK AEE EXCEPTION] PID: 185 (cameraserver) Signal: 11 (SIGSEGV), Code: 1 (SEGV_MAPERR) Fault Addr: 0x00000000 Registers: x0 0000000000000000 → 空指针! x1 0000007fe4b5a1e0 pc ffffffc000a8b1d4 [mtk_camera_proc+0x128] ``` **诊断步骤**: 1. **定位驱动层问题**- 使用 `addr2line` 解析 `pc` 地址指向的驱动代码位置 - 检查寄存器值:`x0=0` 表明解引用空指针 2. **分析调用栈**: ```log Backtrace: #00 [<ffffffc000a8b1d4>] mtk_camera_proc+0x128/0x240 #01 [<ffffffc000234567>] v4l2_ioctl+0x89c/0xa10 ``` - 结合 `v4l2_ioctl` 调用确认是相机子系统崩溃 3. **检查硬件相关性**- 确认是否在特定操作时触发(如 HDR 模式/低光拍摄) - 检查传感器初始化日志 (`dmesg | grep -i imx586`) --- ### 四、高级分析技巧 1. **关联内核日志**: ```bash adb shell dmesg > dmesg.log grep "CPU: 3 PID: 185" dmesg.log -A 50 ``` - 查找崩溃线程的调度信息和锁状态 2. **分析 MTK 内存映射**: ```log [exp_main 片段] [MMU] VA:0x00000000 -> PA: (invalid) [MTEE] TEE_API:TEEC_InvokeCommand failed (0xFFFF0006) ``` - 非法 VA 访问 + TEE 调用失败 → 安全协处理器通信故障 3. **硬件异常解码**- 检查 `ESR_EL1` 寄存器值(ARM 异常状态) ```log ESR_EL1: 0x96000045 ``` - `0x96000045` = 数据中止(Data Abort)来自 EL0 的非特权访问 --- ### 五、MTK 平台常见崩溃原因 | 故障现象 | 可能原因 | 排查方向 | |-------------------------|-----------------------------------|------------------------------| | cameraserver 崩溃 | 1. 传感器驱动竞态条件 | 检查 `mtk_camera.c` 锁机制 | | | 2. 图像信号处理器(ISP)超时 | 查看 `isp_irq` 中断日志 | | modem 相关崩溃 | 1. CCCI 通信协议栈错误 | 分析 `ccci_fsm.ko` 状态机 | | | 2. 基带固件崩溃 | 检查 `md1_exception` 记录 | | GPU 驱动崩溃 | 1. Mali GPU 电源管理故障 | 验证 `mtk_gpufreq.c` 调频逻辑| | | 2. 着色器编译器错误 | 检查 `panfrost` 驱动提交记录 | > ⚠️ **MTK 特殊注意事项**: > - 需关注 **SPM (System Power Management)** 日志,电源管理故障占 MTK 崩溃的 40% > - 使用 `mtklogviewer` 工具解析 `/proc/mtprintk` 获取深度调试信息 > - 联发科芯片特有的 **AP-ARM CoreSight** 跟踪需专用 ETB 分析工具[^1] --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值