我需要对firefox进行跟踪调试,以便尽快搞清楚firefox的工作流程。我想用VS2010来做,在网上没有找到操作方法,不过网上有利用VS2005和VS2008进行调试的例子。参照其步骤,我来探究一下如何使用VS2010对Firefox进行调试。参考资料:Debugging ...
全文
回复(12) 2011-12-05 21:54 来自版块 - Mozilla 软件开发及相关技术
表情
torreygo谢谢楼主的分享,辛苦了(2014-06-28 16:06)
dongyuanxun恩,pdb不要无故删掉了 有一定基础用cdb/windbg调试也挺方便的(2011-12-05 21:54)
JumuFENG刚开始图片还可以显示的,现在图片也无法显示了,估计是CSDN在作怪,需要看插图的去我的CSDN看吧,本论坛一帖只能上传三个附件因此无法在这里帖全部截图了。(2011-12-05 21:54)
JumuFENG我调试跟踪firefox源代码的目的是找到firefox加载网页文件到渲染页面这个过程的处理代码,我的这个目的到现在为止还没达到。但是对firefox的源代码进行跟踪和调试所涉及到的内容也基本上就是这些了。因此做一个关于调试跟踪的小结。 先说明一下我使用的相关软件、程序的版本等信...(2011-12-05 21:54)
JumuFENG按照网上其他人给出的方法,打开了firefox工程之后,设置好环境变量,自己就可以打开一些文件,下断点,进行调试等。但是我一直没有找到打开某个特定文件的方法,如下图是firefox工程点击右键时的选项: [图片] 不过可以添加现有项目,这样可以把firefox.exe目录下的其他...(2011-12-05 21:54)
JumuFENG到此为止,可以说已经到了firefox比较关键的地方了,其打开过程弄得比较清楚了,现在先来理清楚firefox是如何创建浏览器窗口,并最终展示在用户面前。这里先分析一下AppShell->Run()开始调用到消息循环开始这个过程。 当程序运行到~\firefox-8.0.s...(2011-12-05 21:54)
JumuFENG我发现的相似的东西如下两图所示: [图片] [图片] 第一张图是开始运行时的堆栈调用情况,第二张图是新建进程之后,中断时的堆栈调用。我发现的相似的地方是两个进程的入口函数都一样是firefox.exe里面的wmainCRTStartup函数,而其后依次调用了__tmainCRTS...(2011-12-05 21:54)
JumuFENG前面弄清楚了一个问题,只要执行的时候需要用户选择profile,那么选择完profile之后就会创建新的进程来创建firefox。我的想法很直接,只要我能够跟进这个新创建的进程然后一步一步的跟着程序走就可以找到firefox运行过程中是如何打开窗口,如何打开网页的了。于是我在网上...(2011-12-05 21:54)
JumuFENG其他情况主要包括: [*] 环境设置不做变动,保持默认值。 [*] 设置为启动firefox时打开空白页/打开主页等 环境设置保持默认值 直接按F10,开始调试。这一次没有打开profilemanager,而是直接使用了电脑上的默认profile。打开了主页。...(2011-12-05 21:54)
JumuFENG这之间有一个函数LaunchChild(~\firefox-8.0.source\toolkit\xre\nsAppRunner.cpp文件中第1554-1634行),跟进去看看,该函数在我跟踪的时候执行了的代码为: static nsresult LaunchChild(nsI...(2011-12-05 21:54)

返回顶部