出处:http://www.chromium.org/developers/how-tos/debugging
- Chrome 是多进程的浏览器,只能调试启动时候的主进程,要调试所有地方就要用 --single-process 的命令行参数启动,但是在这种模式下,有很多问题是不会出现的,而且,就算在单进程模式,工作线程也会转换到另一个新进程里去。
- 使用镜像文件执行选项(Image File Execution Options/IFEO),可能跑不了?没搞懂?
- 有时候只是需要在启动的时候进行调试,用命令行参数 --renderer-startup-dialog, 和这个参数 (--no-sandbox) 一起用,那么,启动的时候就会弹出一个消息框,然后就可以用vs的工具attach to process来调试了(这几个参数貌似不管用)
- 半自动调试子进程
使用方法:
chrome.exe [--wait-for-debugger-children[=filter]] [--wait-for-debugger]
- filter = plugin | renderer
- --wait-for-debugger-children 60秒attach子进程
- --wait-for-debugger 60秒等待时间去Attach调试器
- 调试要用到的pdb文件,两个地方:
http://msdl.microsoft.com/download/symbols
http://chromium-browser-symsrv.commondatastorage.googleapis.com
- Release版的调试在WinDBG下容易些
修改注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\NativeDE\StepOver
这个注册表项可以指定正则表达式来操作StepOver,即碰到什么情况下就不StepInto,如:
operator (new|delete).* -
new 和 delete操作符std\:\:.* -
所有std的操作
WTF\:\:.*Ptr\<.*\>\:\:.* -
所有
WebKit OwnPtr 和 variants, ... WTF::*Ptr<*>::*
- 用WinDBG调试,这很牛X,比vs强很多,但是不好用