软件调试-调试符号

调试符号.

1.1 C 的调试符号

case1. 使用C调用协议(__cdecl)的函数,在函数名称前加一下划线,不考虑参数和返回值.

eg.

case2.使用快速调用协议(__fastcall)的函数,在函数名称前后各加@符号,后跟参数的长度, 不考虑返回值.

eg. extern "C"  int__fastcall Test (int n) ---------> @[email protected]

case3. 使用标准调用协议(__stdcall)的函数,函数名称前加下划线,名称后加一个@符号,后跟参数的长度, 不考虑返回值.

eg. extern "C"  int__stdcall Test (int n, int m) ---------> [email protected]

1.2 C++的调试符号.

时间: 2024-11-05 15:53:11

软件调试-调试符号的相关文章

gdb如何调试没有符号表(未加-g选项的编译)的程序

/*********************************************************************  * Author  : Samson  * Date    : 01/30/2015  * Test platform:  *              3.13.0-24-generic  *              GNU bash, 4.3.11(1)-release  * ************************************

软件开发--调试器GDB

一.GDB介绍 A.GDB1.GNU项目中的调试器2.能够追踪程序的执行,也能够恢复程序崩溃前的状态B.GDB的重要性1.软件不是一次性开发完成的(是软件就有bug,是程序就有问题)2.调试时软件开发过程中不可或缺的技术C.GDB的常规应用1.自定义程序的启动方式(指定影响程序运行的参数)2.设置条件断点(在条件满足时暂停程序的执行)3.回溯检查导致程序异常结束的原因4.动态改变程序执行流(定位问题的辅助方式)D.GDB的启动方式1.直接启动--gdb ,gdb test.out ,gdb te

调试器符号选项

有许多选项可用于控制符号的加载和使用方式.这些选项可以通过多种方式设置. 下表列出了这些符号选项: Flag Option Name Default in debugger Default in DBH 0x1 SYMOPT_CASE_INSENSITIVE On On 0x2 SYMOPT_UNDNAME On On 0x4 SYMOPT_DEFERRED_LOADS On Off 0x8 SYMOPT_NO_CPP Off Off 0x10 SYMOPT_LOAD_LINES Off in

Linux软件安装调试 源代码包编译安装和 二进制包配置

Linux 下源代码(C 语言)如何编译(安装) 1. 先安装源代码编译的软件 gcc,make,openssl 如下: yum install -y gcc make gcc-c++ openssl-devel 检查系统中是否已经安装 gcc:rpm -qa | grep gcc / rpm -ql gcc 2.三步走编译安装 linux 源代码 1.生成编译配置文件(Makefile) 2.开始编译(make) 3.开始安装(make install) 安装 httpd-2.2.9.tar.

调试-----调试正在运行的多线程程序

4 using namespace std; 5 static int a = 1; 6 7 void *thread0(void*) 8 { 9 while (1) 10 { 11 a++; 12 } 13 return (void*)0; 14 } 15 16 void *thread1(void*) 17 { 18 while (1) 19 { 20 a++; 21 } 22 return (void*)0; 23 } 24 25 int main() 26 { 27 pthread_t

调试---调试正在运行的程序

void fun() { int b = 0; b++; } int main(int argc, char** argv) { while (1) { int a = 0; a++; fun(); } } main.cpp 1. 运行上面程序                               ./main 2. 查看上面程序进程号, 假设为1234     ps aux | grep main  3. gdb调试, attach上面进程               gdbtui  m

软件调试前的准备工作

在我们对某个问题进行调试前一定要做足准备工作,不然后面的调试工作会面临极大的困难,甚至都无法开展调试工作. 必须要做的准备工作 不管我们是在开发期调试,还是在发布后调试,都要做好如下准备工作: 充足的心里准备这个太重要了,在实际工作中,我见到太多被问题吓怕的人.在还没整清楚问题是什么时就已经打了退堂鼓,把工作和问题给别人.面对任何问题,我们首先要做的就是树立起信心.特别是在计算机的世界里,事出必有因,且一定具有事情的发生的必然逻辑.所以,我们只要有信心就肯定能解决问题. 编写高质量代码程序开发者

他山之石:软件调试排错阶段的可靠性评估模型

在硬 件可靠性 理 论 中 , 典 型 的失效 率 又( t ) 函 数是 一条 形 似“ 浴 盆” 的曲线 . 浴 盆 曲线 由三 段 构成 : 早 期故 障期 . 偶 然故 障期 . 耗损 故 障期 . 这种 曲线描 述 了事物 生命期 的 整个过 程 , 而 且具 有普遍 性 . 对 软件来 说 , 在调 试排错 阶 段 , 故 障易 被发现 , 也 易于 纠正 , 而且 在纠 正 中引 人新 故 障的概率 较小 , 因此 , 在 此 阶段 , 软件 失效率 是递 减 的 ; 当软件 中存

Linux下C/C++程序调试基础(GCC,G++,GDB,CGDB,DDD)

在写程序的时候,经常会遇到一些问题,比如某些变量计算结果不是我们预期的那样,这时我们需要对程序进行调试.本文主要介绍调试C/C++在Linux操作系统下主要的调试工具. 在Linux下写程序,C/C++主要的编译器有GCC/G++,ICC等,像我等穷码农,最喜欢GCC了,很大原因是他免费!所以,我们以GCC/G++为例介绍主要的调试工具. 分以下几个内容介绍: 1.调试之前的工作 2.选择调试工具 3.调试步骤 点我,请帮我投一票! 调试之前的工作 编译器在编译阶段需要产生可供调试的代码,才能被