考虑到像 chromium 这样的复杂应用程序,现在有没有人可以方便(并且实际工作)的方法来跟踪它的系统调用?
我在做什么
在临时配置文件中启动 chromium,但启用了多个扩展,例如 Ghostery(以及其他几个扩展,但一个就足以测试)
chromium-browser --temp-profile --enable-plugins --no-first-run --disable-first-run-ui --no-default-browser-check --load-extension=/home/MYPROFILE/.config/chromium/Default/Extensions/mlomiejdfkolichcflejclcbmpeaniij/3.1.48_0
我想做的事
我想知道 chromium 何时以及从哪个文件运行扩展程序首次运行时创建/启动的起始页。每次 chromium 运行该临时配置文件时,Ghostery 都会打开两个起始页面 - SurveyMonkey 及其配置。其他一些扩展也可以这样做。我希望它消失:)所以我会对任何解决方案、编辑配置等感到满意。
我尝试过什么
我查过命令行开关是否有任何可以阻止在 chromium 启动期间通过扩展打开任何页面,但我还没有找到。
我检查过他们的 chromium 扩展
manifest.json
有 options.html 页面,据说该页面在第一次运行时运行。我已经删除了这个 json 条目,但页面仍然出现。我尝试使用以下方法跟踪铬进程:
a) $strace -F -v -o "/tmp/chromium_run_<backtick>date +%F_%T<backtick>" chromium-browser --temp-profile --enable-plugins --no-first-run --disable-first-run-ui --no-default-browser-check --load-extension=/home/MYPROFILE/.config/chromium/Default/Extensions/mlomiejdfkolichcflejclcbmpeaniij/3.1.48_0
但铬沙箱正在反击,说了类似的话使用PPAPI闪存。 setuid 沙箱未以 root 身份运行。常见原因:
- 一个使用 ptrace 的非特权进程,就像调试器一样。
- 父进程集 prctl(PR_SET_NO_NEW_PRIVS, ...) 无法移动到新命名空间:支持 PID 命名空间、支持网络命名空间,但失败:errno = 不允许操作
b) $ sudo
strace -F -v -o "/tmp/chromium_run_<backtick>date +%F_%T<backtick>" chromium-browser --temp-profile --enable-plugins --no-first-run --disable-first-run-ui --no-default-browser-check --load-extension=/home/MYPROFILE/.config/chromium/Default/Extensions/mlomiejdfkolichcflejclcbmpeaniij/3.1.48_0
没有抛出任何错误,但是在数百千字节的日志之后,文件中没有open
任何我期望的内容,也没有出现 chromium 应用程序窗口,它挂在某处 (waitpid(3,
)。
我想到的任何其他想法都很耗时
- 摸索铬源寻找罪魁祸首
- 在本地设置 chromium 构建并自己构建 chromium,使用符号并尝试使用 gdb。
我将不胜感激任何建议。