在GDB中运行与调试程序

当以gdb <program>方式启动gdb后,gdb会在PATH路径和当前目录中搜索<program>的源文件。如要确认gdb是否读到源文件,可使用l或list命令,看看gdb是否能列出源代码。

在gdb中,运行程序使用r或是run命令。程序的运行,你有可能需要设置下面四方面的事。

1、程序运行参数。

set args 可指定运行时参数。(如:set args 10 20 30 40 50)
show args 命令可以查看设置好的运行参数。

2、运行环境。

path <dir> 可设定程序的运行路径。
show paths 查看程序的运行路径。
set environment var">name [=value] 设置环境变量。如:set env USER=hchen
show environment [varname] 查看环境变量。

3、工作目录。

cd <dir> 相当于shell的cd命令。
pwd 显示当前的所在目录。

4、程序的输入输出。

info terminal 显示你程序用到的终端的模式。
使用重定向控制程序输出。如:run > outfile
tty命令可以指写输入输出的终端设备。如:tty /dev/ttyb

调试已运行的程序

两种方法:

在UNIX下用ps查看正在运行的程序的PID(进程ID),然后用gdb <program> PID格式挂接正在运行的程序。
先用gdb <program>关联上源代码,并进行gdb,在gdb中用attach命令来挂接进程的PID。并用detach来取消挂接的进程。

时间: 2024-09-20 18:39:45

在GDB中运行与调试程序的相关文章

GDB中运行UNIX的shell程序

在gdb环境中,你可以执行UNIX的shell的命令,使用gdb的shell命令来完成: shell <command string> 调用UNIX的shell来执行<command string>,环境变量SHELL中定义的UNIX的shell将会被用来执行<command string>,如果SHELL没有定义,那就使用UNIX的标准shell:/bin/sh.(http://www.aliyun.com/zixun/aggregation/32995.html&q

在GDB中暂停/恢复程序运行

调试程序中,暂停程序运行是必须的,GDB可以方便地暂停程序的运行.你可以设置程序的在哪行停住,在什么条件下停住,在收到什么信号时停往等等.以便于你查看运行时的变量,以及运行时的流程. 当进程被gdb停住时,你可以使用info program 来查看程序的是否在运行,进程号,被暂停的原因. 在gdb中,我们可以有以下几种暂停方式:断点(BreakPoint).观察点(Watch Point).捕捉点(C++atch Point).信号(Signals).线程停止(http://www.aliyun

GDB中应该知道的几个调试方法

七.八年前写过一篇<用GDB调试程序>,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题.这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来.希望大家补充. 一.多线程调试 多线程调试可能是问得最多的.其实,重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的

Visual&amp;#160;Studio&amp;#160;中用管理员权限运行、调试程序

原文:Visual Studio 中用管理员权限运行.调试程序 一个Sample小程序,用于验证WoW64的Windows Registry的读写访问.在Visual Studio 2010中调试运行,程序显示没有权限在Windows Registry中创建key   把Release版的该程序以管理员权限执行,结果符合预期,一切顺利.   那么在VS的IDE框架内,如何给debug运行的程序以管理员权限?网上搜了一下,不得要领.   没办法,关闭VS后,以管理员权限重启VS,再debug运行,

Asp.net制作的网页在平板电脑中运行,如何使调出软键盘后使其覆盖到页面上

问题描述 Asp.net制作的网页在平板电脑中运行,如何使调出软键盘后使其覆盖到页面上 把网页在平板中运行后,当我点击文本框的时候,平板中自动调出了软键盘,但把我的页面的挤在了上面,我想让软键盘只是覆盖在页面上,网页形状不变,麻烦各位大神啦,最好有代码,谢谢 解决方案 这个是浏览器和平板操作系统的行为,改不了.变通的办法是抑制默认的键盘弹出,用你的网页自己模拟一个软键盘 解决方案二: onfocus事件中直接写blur就可以隐藏了..http://stackoverflow.com/questi

Linux操作系统中运行ASP.NET 4

<在openSUSE下ASP.NET 4开发环境配置>中已经配置好了 openSUSE 11.3 操作系统. 现在,我们进入"GNOME 终端",使用 ifconfig 命令验证一下本虚拟的 IP 地址就是一开始我们在宽带路由器中为它分配的静态地址. ben@linux-nyhn:~> /sbin/ifconfig   eth0      Link encap:Ethernet  HWaddr 08:00:27:51:5B:0B               inet 

在Java程序中运行外部类文件

程序 在Java程序中运行外部类文件 一.引言无论是用传统的编程语言(C++.VB等)还是Java语言编程,都经常需要在一个运行的程序中执行另外一个独立的外部程序.例如用Java设计一个IDE程序,那么这个IDE程序就必需能够调式.运行其它独立的外部Java程序.况且直接运行已经存在的外部程序来实现本程序的某些特定的功能,也是提高程序开发效率的一种重要手段.Java2为实现在一个Java程序中运行外部类文件(即Java程序)提供了的两种解决方案,即在同一进程中运行外部类文件和在不同进程中运行外部

PHP中运行的文件管理系统:ajaxplorer

由于在VPS上安装FTP总是失败,需要一个可以通过Web进行文件管理的工具.AjaXplorer是一个在PHP中运行的文件管理系统,功能的强大以及界面的华丽实在是第一次见到. 官方网站:http://ajaxplorer.info 已经被伟大的墙屏蔽. 安装及使用: 1.下载AjaXplorer文件包,您可以直接在下面的地址中下载,这个版本是3.2.1,下载后当然是上传到网站上,最好给它一个专用的文件夹,比如/explorer AjaXplorer.zip (2) 2.直接访问刚才安装AjaXp

确定在 z/OS 上的WAS中运行的应用程序的 CPU 使用情况

确定在 z/OS 上的 WebSphere Application Server 中运行的应用程序的 CPU 使用情况 简介 IBM WebSphere Application Server 环境常常托管着多个不同类型的企业应用程序,它们受不同的 Java EE 技术支持.这些应用程序通常会并发运行,每个都会消耗与它们执行的工作相对应的系统资源,比如 CPU 周期和内存.在性能测试和生产使用期间,查看每个应用程序(而不是仅查看整个应用服务器)消耗的资源常常很有用. 有许多工具可用于监视 WebS