专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
  使用QEMU+GDB能够实现源代码级的内核调试,但是,存在一个问题──当内核允许中断时,单步命令(n与s)会进入时钟中断。通过浏览QEMU的源代码,大体把原因找了出来。 单步命令(n与s)在gdb远程调试通讯中是s(参看info gdb),qemu的gdb stub在受到s命令后将虚拟CPU进入单步状态,但是在接收到s命令前,qemu的虚拟CPU是停止的(在等待gdb的命令),注意,这个时候,虚拟时钟计时并没有停止,所以,很可能在qemu的虚拟CPU还没开始的时候就需要触发时钟中断了,但是虚拟CPU还在停止状态,中断无法触发。接收到s命令后,虚拟CPU开始执 [阅读全文] [PDF]
  无论是多么优秀的程序员,都难以保证自己在编写代码时不会出现任何错误,因此调试是软件开发过程中的一个必不可少的组成部分。当程序完成编译之后,它很可能无法正常运行,或者会彻底崩溃,或者不能实现预期的功能。此时如何通过调试找到问题的症结所在,就变成了摆在开发人员面前最严峻的问题。通常说来,软件项目的规模越大,调试起来就会越困难,越需要一个强大而高效的调试器作为后盾。对于Linux程序员来讲,目前可供使用的调试器非常多,GDB(GNU DeBugger)就是其中较为优秀的。    初识GDB    GDB是自由软件基金会(Free Software Foundati [阅读全文] [PDF]
  作者:David Seager    GNU 调试器简介   作者:David Seager       Linux 的大部分特色源自于 shell 的 GNU 调试器,也称作 gdb。gdb 可以让您查看程序的内部结构、打印变量值、设置断点,以及单步调试源代码。它是功能极其强大的工具,适用于修复程序代码中的问题。在本文中,我将尝试说明 gdb 有多棒,多实用。     编译   开始调试之前,必须用程序中的调试信息编译要调试的程序。这样,gdb 才能够调试所使用的变量、代码行和函数。如果要进行编译,请在 gcc(或 g++)下使用额外的 -g 选项来编译程 [阅读全文] [PDF]
  GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。     一般来说,GDB主要帮忙你完成下面四个方面的功能:     1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。   2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)   3、当程序被停住时,可以检查此时你的程序中所发生的事。   4、动态的 [阅读全文] [PDF]
  Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能:     它使你能监视你程序中变量的值.     它使你能设置断点以使程序在指定的代码行上停止执行.     它使你能一行行的执行你的代码.     在命令行上键入 gdb 并按回车键就可以运行 gdb 了, 如果一切正常的话, gdb 将被启动并且你将在屏幕上看到类似的内容:     GDB is free software and you are [阅读全文] [PDF]
  gdb 应用举例     本节用一个实例教你一步步的用 gdb 调试程序. 被调试的程序相当的简单, 但它展示了 gdb 的典型应用.     下面列出了将被调试的程序. 这个程序被称为 greeting , 它显示一个简单的问候, 再用反序将它列出.     #include <stdio.h>  main ()  {   char my_string[] = "hello there";   my_print (my_string);   my_print2 (my_string);  }  void my_print (char *string) [阅读全文] [PDF]
1 共6条 分1页