一、背景说明

所谓调试者,主要就是下断点、观察变量,不是太复杂的事情也不用太复杂的工具。

但具体到linux平台而言,gdb本来多敲几下命令也不是不可以的事,但是一个屏幕就那么大打印出一堆东西又乱又看不全,弄个图形界面还是好用一点。

kdbg就是Lniux平台的图形界面调试器。更准确而言,kdbg不是一个调试器只是gdb的一个前端图形界面,后面调用的还是gdb。

(所以要用kdbg要先装好gbd,gdb是随gcc安装的所以安装gcc应该就都有了)

二、kdbg安装

apt-get install -y kdbg

debina类直接安装即可,其他各种安装参见链接

三、kdbg使用

3.1 编译用于调试的程序

#include <stdio.h>

int main(){
int a = ;
if (a>){
printf("a is bigger than 1\n");
}
else{
printf("a is smaller than 1\n");
}
return ;
}

想要使用kdbg调试,编译一定要使用-g选项。比如我以上代码保存为test.c编译输出为test.o:

gcc test.c -g -o test.o

3.2 使用kdbg进行调试

直接在终端执行kdbg启动kdbg,初始界面如下。

点击“Executable”载入要调试的test.o,会同步载入源代码。在想要要中断的代码行下断点,然后点击“Run”即会运行到断点处。

我一直以为gbd(kdbg)是和ollydbg一类的逆向调试工具,现在看来只是和普通IDE一类基于源代码的断点调试工具。

参考:

http://www.kdbg.org/manual/

http://math.hws.edu/eck/cs225/s02/kdbg.html

kdbg安装使用教程(kali)的更多相关文章

  1. Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016

    Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Att ...

  2. Kali Linux NetHunter教程Kali NetHunter支持的设备和ROMs

    Kali Linux NetHunter教程Kali NetHunter支持的设备和ROMs NetHunter是一个基于Kali Linux为Nexus设备构建的Android渗透测试平台,其中包括 ...

  3. IntelliJ IDEA - 热部署插件JRebel 安装使用教程

    IntelliJ IDEA - JRebel 安装使用教程 JRebel 能做什么? JRebel 是一款热部署插件.当你的 Java-web 项目在 tomcat 中 run/debug 的时候 , ...

  4. Zabbix3.x安装图解教程

    准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...

  5. VMware vCenter Server安装图解教程

    安装说明: 1.安装VMware vCenter Server的主机操作系统为:Windows Server 2008 R2 2.在Windows Server 2008 R2中需要预先安装好SQL ...

  6. 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程

    在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...

  7. Zabbix安装图解教程

    说明: 操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需 ...

  8. MapGIS6.7安装图文教程(完美破解)

    mapgis安装比较简单,主要注意在安装的时候,先打开软件狗,然后再进行软件安装,一般就不会照成其他安装失败的现象,有时候安装之前没有打开软件狗也安装成功了,也有这情况,不过软件使用也需要软件狗的支持 ...

  9. VirtualBox安装Ubuntu教程

    1.VirtualBox虚拟机安装,及VirtualBox安装Ubuntu教程VirtualBox版本为VirtualBox-4.3.12-93733-Win.exe,Ubuntu版本为ubuntu- ...

随机推荐

  1. C#Listview添加数据,选中最后一行,滚屏

    this.listView.Items.Add(lvi); this.listView.EnsureVisible(this.listView.Items.Count - 1); this.listV ...

  2. 初步:jenkins自动构建安卓Apk

    1:本地搭建jenkins 2:下载插件 3:配置相关信息(git,sdk等等) 3:拉取git仓库代码 4:编译执行 参考文章:http://www.cnblogs.com/reblue520/p/ ...

  3. CAS 是什么

    CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换. CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B. 更新一个变量的时候,只有当变量的预期值 ...

  4. VC静态调用DLL(lib)

    1. #pragma comment(lib, "libxml2.lib")#pragma comment(lib, "iconv.lib")#pragma c ...

  5. CSS3一些常用动画

    /* animation */ .a-bounce,.a-flip,.a-flash,.a-shake,.a-swing,.a-wobble,.a-ring{-webkit-animation:1s ...

  6. 01-python基础知识

    1.这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们? 答案 如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args:如果我 ...

  7. keil MDK注意事项

    1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed char 或 unsigned.因此 ...

  8. c# winform 中的坐标系

    从数学角度讲,Point是一个二维矢量,包含两个公共整型属性,属性用大写X和Y(c#中公共属性一般约定以大写字母开头).当坐标不是整数值是float时,用PointF代替Point使用. 常用的Siz ...

  9. 0.1.3 set的用法

    set的特性是,所有元素都会根据元素的键值自动排序,set的元素不像map那样可以同时拥有实值(value)和键值(key),set元素的键值就是实值,实值就是键值.set不允许两个元素有相同的键值. ...

  10. python记录day_20 多继承

    多继承 继承: x是一种y的时候.可以使用继承关系.是"is a"的关系 在python中,支持多继承,一个类可以拥有多个父类.但是多继承中, 存在着这样一个问题,当两个父类中出现 ...