`
lonely_online
  • 浏览: 11315 次
社区版块
存档分类
最新评论

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

    博客分类:
  • web
 
阅读更多
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


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


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

 

4.设置源码路径

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

 

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

也可以通过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来终止一个长时间未完成的命令。

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


如果大家有什么想法或者疑问,请关注我们的公众号,及时沟通,这里有各种大牛帮你解决问题。

欢迎关注微信公众平台:程序员互动联盟(coder_online),一个开发人员的家,来诉说自己的故事

27225517_4bEO.jpg

转载请注明公众号名称

分享到:
评论

相关推荐

    Chromium浏览器(Chromium for 64-bit Windows)version:82.0.4072.0

    Chromium浏览器官方版是一个由Google主导开发的网页浏览器,Chromium浏览器官方版是Google为发展Google Chrome而开启的计划,所以Chromium浏览器相当于Chrome的工程版或称实验版,新功能会率先在Chromium上实现,待...

    使用Java开发的浏览器,基于Chromium.zip

    Java开发的浏览器基于Chromium项目,这涉及到两个主要的技术领域:Java编程语言和Chromium开源浏览器引擎。Java是一种广泛使用的面向对象的编程语言,以其跨平台性和强大的库支持而闻名。Chromium是Google Chrome...

    Chromium浏览器(Chromium for 64-bit Windows)Version: 80.0.3958.0

    Chromium浏览器官方版是一个由Google主导开发的网页浏览器,Chromium浏览器官方版是Google为发展Google Chrome而开启的计划,所以Chromium浏览器相当于Chrome的工程版或称实验版,新功能会率先在Chromium上实现,待...

    ubuntu kylin 15.04 chromium浏览器无法播放视频的解决办法.docx

    Ubuntu Kylin 15.04 中 Chromium 浏览器无法播放视频的解决办法 在 Ubuntu Kylin 15.04操作系统中,使用 Chromium 浏览器无法播放视频是一种常见的问题。这种问题的出现是因为 Chromium 浏览器缺乏支持 Flash 插件...

    C# 使用chromium内核浏览器源码

    C# 使用chromium内核浏览器源码 When I hit a web site which I can not access because of a web filter, one of my options is to use the original Tor Browser which is a custom version of Firefox and I can...

    Chromium浏览器(Chromium for 32-bit Windows)Version: 80.0.3958.0

    Chromium浏览器官方版是一个由Google主导开发的网页浏览器,Chromium浏览器官方版是Google为发展Google Chrome而开启的计划,所以Chromium浏览器相当于Chrome的工程版或称实验版,新功能会率先在Chromium上实现,待...

    chromium浏览器安全机制

    ### Chromium浏览器安全机制详解 #### 摘要与引言 随着互联网技术的快速发展,现代浏览器已成为各种应用程序的重要平台。然而,大多数浏览器仍然沿用着自1993年NCSA Mosaic推出的单体架构设计。这种架构设计在面对...

    Chromium浏览器(Windows)

    Chromium浏览器是一款开源的网页浏览器项目,它是Google Chrome浏览器的基础,两者在许多方面都有相似之处,但Chromium更侧重于开发者社区的贡献和对新功能的快速迭代。这个压缩包文件"chrome-win32"表明它包含的是...

    Chromium浏览器(Chromium for 64-bit Windows)

    Chromium浏览器官方版是一个由Google主导开发的网页浏览器,Chromium浏览器官方版是Google为发展Google Chrome而开启的计划,所以Chromium浏览器相当于Chrome的工程版或称实验版,新功能会率先在Chromium上实现,待...

    chromium浏览器linux版本

    Chromium是一款开源、自由的网络浏览器,它是Google Chrome的基础,被许多操作系统采用,包括Linux。在Linux平台上,Chromium提供了与Chrome相似的功能,但没有内置的Google服务和一些额外的特性。版本号1000548是...

    Chromium浏览器(Chromium for 32-bit Windows)Version: 81.0.4031.0

    Chromium浏览器官方版是一个由Google主导开发的网页浏览器,Chromium浏览器官方版是Google为发展Google Chrome而开启的计划,所以Chromium浏览器相当于Chrome的工程版或称实验版,新功能会率先在Chromium上实现,待...

    Google 开源 Chromium 浏览器

    Chromium是一款由Google主导开发的开源网页浏览器项目,它的存在为全球开发者提供了一个自由、开放的平台,以便共同构建和改进网络浏览体验。Chromium的源代码是基于 Blink 渲染引擎(由WebKit分支而来)和V8 ...

    delphi Chromium浏览器 源码支持d7 d10 xe2

    本篇将深入探讨Delphi Chromium浏览器源码,特别是如何在Delphi D7、D10以及XE2版本中进行有效利用和开发。首先,我们需要明确的是,Delphi Chromium是基于CEF(Chromium Embedded Framework)构建的,它提供了一种...

    Chromium浏览器(Chromium for 64-bit Windows)Version: 81.0.4031.0

    Chromium浏览器官方版是一个由Google主导开发的网页浏览器,Chromium浏览器官方版是Google为发展Google Chrome而开启的计划,所以Chromium浏览器相当于Chrome的工程版或称实验版,新功能会率先在Chromium上实现,待...

    树莓派3b chromium 浏览器安装 及 Flash插件安装

    Chromium浏览器是Google Chrome浏览器的开源版本,适用于多种操作系统,包括树莓派的Raspbian。在树莓派上安装Chromium浏览器能够提供一个更接近桌面体验的网页浏览环境。 首先,我们需要了解如何在树莓派3B上安装...

    Chromium-开源浏览器

    Chromium为Google Chrome浏览器提供了基础代码,两者有很多相似之处,但Chromium更注重开发和实验性功能,而Chrome则包含了更多的稳定性和隐私控制。 1. **Blink渲染引擎**:Blink是Chromium使用的开源渲染引擎,...

    Delphi开发Chromium谷歌内核浏览器

    Delphi开发Chromium谷歌内核浏览器控件,支持Delphi 7- Delphi 10.2 亲自测试调试安装正常。内有详细帮助文档,方便查阅! Chromium32位框架(必须的,重要,详细查阅帮助文档) ...Chromium64位框架 ...

    安装Chromium100浏览器arm64版

    安装包

    Delphi编写的Chromium浏览器自动更新器.rar

    Delphi写的Chromium浏览器自动更新程序,自动更新Chromium浏览器的软件版本,在Delphi7.0下开发完成,使用了第三方控件:TRzTrayIcon

    Chromium内核多标签浏览器(dcef3-3.1650)

    5. **API接口**:dcef3提供了一系列C++ API,使得开发者可以轻松地控制浏览器的行为,如打开、关闭标签页,管理书签,执行JavaScript代码等。 6. **Demos示例**:压缩包中的“demos”目录可能包含了一些dcef3的基本...

Global site tag (gtag.js) - Google Analytics