怎样用GDB调试一个由脚本文件启动的程序

怎样用GDB调试一个由脚本文件启动的程序,第1张

使用GDB

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:

$gcc -g -Wall helloc -o hello

$g++ -g -Wall hellocpp -o hello

如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。

启动GDB的方法有以下几种:

gdb <program>

program也就是你的执行文件,一般在当前目录下。

gdb <program> core

用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。

gdb <program> <PID>

如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。

以上三种都是进入gdb环境和加载被调试程序同时进行的。也可以先进入gdb环境,在加载被调试程序,方法如下:

在终端输入:gdb

在gdb环境中:file <program>

这两步等价于:gdb <program>

GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。我在下面只例举一些比较常用的参数:

-symbols <file>

-s <file>

从指定文件中读取符号表。

-se file

从指定文件中读取符号表信息,并把他用在可执行文件中。

-core <file>

-c <file>

调试时core dump的core文件。

-directory <directory>

-d <directory>

加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。

调试Windows服务

调试Windows服务比普通应用程序要困难些,需要很多步骤。服务不能像普通应用程序那样在开发环境中直接执行来调试,它必须先安装并启动。一旦启动了它,你可以用Visual Studio附加到进程来调试代码。记住,对Windows服务做的任何改动,你都需要卸载并重新安装它。

附加到运行的Windows服务

要调试服务,你需要按如下步骤附加到Windows服务。这里假设你已经安装了服务并成功启动了它。

1 在Visual Studio中打开项目

2 选择调试

3 选择附加到进程

4 打开选择所有用户的进程

5 在可用进程中选择你的进程

6 点击附加

7 在timer1_Elapsed方法里设置一个断点,等待它的执行

一、WebService在cs后台程序中的调用A、通过命名空间和类名直接调用示例:WebServicews=newWebService();strings=wsHelloWorld();B、通过添加WEB引用的方式调用,首先添加WEB引用,通过URL指向WEBSERVICE,指定WEB引用名,假设为KK;示例:kkWebServicen=newkkWebService();stringss=nHelloWorld();二、WebService在前台页面的JS调用方法1、首先通过下面的方法把Webservice在前台引用进来2、然后就可以通过JS程序进行调用,示例如下:

以上就是关于怎样用GDB调试一个由脚本文件启动的程序全部的内容,包括:怎样用GDB调试一个由脚本文件启动的程序、VS C# 怎么调试调试服务、webservice 怎样调试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10117270.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存