
使用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 怎样调试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)