• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-06-12)  专业技术 浏览器 |   抢沙发  86 
    文章评分 1 次,平均分 5.0

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    附上上几篇文章地址,方便大家查看:

    下载源码

    编译源码

    目录结构

    如何调试

    Windbg相信windows开发的人都知道,有些人用的溜儿溜儿的,有个crash,直接拿这个工具一分析,就定位出来了。非常好用。以前有个同事,做sdk开发的,会各种命令。来北京后,还去过微软面试(不过当时是做外包,挣得也不少),问的问题就包括会不会用windbg定位问题。当时就会几个简单的命令,最后还是没面上(不堪回首)。

    使用windbg调试windows下的程序,只要有符号文件,问题定位分分钟的事。下面主要讲一下使用windbg调试chromium。有些是从官网上对翻过来的,如果大家看不明白,可以直接加我们的公众号:程序员互动联盟(coder_online)来进行互动。

    Windbg是一个强大的免费工具,它比起VisualStudio的调试器还要强大,能够看到当前的内存栈等信息,但是也比那个难用(和Linux下的gdb差不多)。大家可以去微软官网下载最新版本安装,官网有两个版本:32位和64位。我们使用32位来调试chromium。

    初始化

    1.设置符号路径

    打开windbg,文件菜单->符号文件路径(快捷键ctrl+s)

    这里假设c:\code\symbols这个是你符号文件存储的位置(这个可以自己随意设置,但是必须保证有足够的空间,找个空盘符有个10G左右的,新建一个文件夹,以后就别管了),设置符号路径如下:

    SRV*c:\code\symbols*http://msdl.microsoft.com/download/symbols;SRV*c:\code\symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    2.在视图窗口中可以选择显示一些窗口

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    3.使用文件下的一些功能去加载想要调试的进程或者可执行文件

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    4.设置源码路径

    如果想直接定位到源码位置,可以设置源码路径:文件->源码路径,最好是本地代码,直接指定chromium网络地址不太现实:

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    使用windbg调试chromium比较重要的一点是,它可以调试子进程。一个比较简单的方法就是在使用“Open Executable”打开窗口时,选中下面的选项,如图所示:

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    也可以通过attach来调试运行的进程,使用detach来解除调试进程。

    #重要说明

    (1) windbg命令分为标准命令,元命令和扩展命令。

    标准命令提供最基本的调试功能,不区分大小写。如:bp g  dt  dv  k等

    元命令提供标准命令没有提供的功能,也内建在调试引擎中,以.开头。如.sympath  .reload等

    扩展命令用于扩展某一方面的调试功能,实现在动态加载的扩展模块中,以!开头。如!analyze等

    (2) 进入调试状态时,直接回车可重复执行上一条命令;按上下方向键可以浏览和选择以前输入过的命令

    (3) 神奇的Tab键,进行命令补全;ESC清除当前命令输入框中的文本

    (4) 使用;作为分隔符,可以在同一行输入多条命令

    (5) 下图红色框中的“0:047”。【0为当前调试会话的进程号;047为调试会话的线程号】

    (6) 当命令提示符显示*BUSY*时,即使命令输入框可以输入命令,但输入的命令不会立即被执行,要等windbg空闲时才能执行。

    可使用Ctrl + Break来终止一个长时间未完成的命令。

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    如果大家想更深入了解windbg的知识,可以去官方网站学习。另外推荐一本学习的书籍《软件调试》。

    关注微信公众平台:程序员互动联盟(coder_online),你可以第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序员互动联盟,开发人员自己的家。

    chromium浏览器开发系列第五篇:Debugging with WinDBG

    转载请注明出处,谢谢合作!

     

     

    本文原始地址:http://www.coderonline.net/chromium-browser-development-series-fifth-article-debugging-with-windbg.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    关于
    自由

    发表评论

    表情 格式

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册