Android DDMS v22.0.1无法使用Droid Razor 4.1.2生成systrace

时间:2013-06-20 20:32:25

标签: android ddms systrace

我选择了几个跟踪标记,当我运行跟踪(来自DDMS)时,我得到以下输出:

Unexpected error while collecting system trace. Unable to find trace start marker 'TRACE:':
error opening /sys/kernel/debug/tracing/options/overwrite: 
No such file or directory (2)

error openi(在此处切断错误)

确实内核目录中没有调试文件,但哪种机制会生成必要的路径?

2 个答案:

答案 0 :(得分:6)

看起来您的手机正在运行不支持systrace的启动(内核)映像。

"错误打开/ sys / kernel / debug / tracing / options / overwrite:没有这样的文件或目录(2)"

此错误消息表示adb守护程序(在设备端运行的adb模块)无法在设备的文件系统中找到/ sys / kernel / debug / tracing / options / overwrite。 systrace通过adb工作,并通过/ sys / kernel / debug / tracing下的sysfs节点与内核通信。如果由于某种原因这些节点没有暴露在您的手机上,systrace将无法正常工作。

因此,您应首先使用以下方法在设备上获取shell:

adb shell

然后浏览以确认/ sys是否存在以及是否存在/ sys / kernel / debug / tracing。

如果他们在那里极不可能,你必须调试systrace.py来弄清楚systrace如何认为节点不在那里。否则,您需要刷新具有systrace支持的不同启动映像,因为sysfs由内核(主要是编译时的配置)和init.rc控制,这两者都是启动映像的一部分。

闪烁其他启动映像可能涉及解锁/生根设备。您可能需要访问xdadeveloper等粉丝网站获取信息和图片。另一个选择是为您的设备下载内核源代码,编译内核并自己制作启动映像。 Linux属于GPL,因此您的设备制造商有义务发布他们使用的专用内核的源代码。

-NAM http://www.willpromo.com

答案 1 :(得分:1)

您可能需要稍微修改内核映像(boot.img)。以下工作为我找到,仅供您参考。

  1. 打开终端并输入:$adb shell
  2. (1)$su(2)$mount -t debugfs none /sys/kernel/debug。现在,您应该能够在/ sys / kernel / debug /下看到许多目录。 (您可以通过cd进入/ sys / kernel / debug来确认这一点)
  3. 输入:$dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.img以从您的设备生成boot.img内核映像。
  4. 使用AndroidImageKitchen解压缩boot.img并在Ramdisk文件夹中找到default.prop。然后将ro.debuggable=0更改为ro.debuggable=1。重新打包boot.img并将其启动到您的设备。
  5. 设备启动后,在终端下输入:$adb root,可能会弹出消息:$restarting adbd as root。断开USB连接并重新连接。
  6. cd到systrace文件夹,例如〜/ androidSDK / platform-tools / systrace并使用: python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
  7. 现在您可以生成自己的systrace文件。