debugging相关内容

GCC -g VS -g3 GDB标志:有什么区别?

在编译的C源$ C ​​$ c。与海湾合作委员会要么铛或者,我总是用 -g 标记生成GDB调试信息。 的gcc -o -g的HelloWorld helloworld.c 我注意到,有些人建议 -g3 来代替。是什么 -g 和 -g3 标记之间的区别?也有之间的差异 -g 和 -ggdb ? 解决方案 从文档 -g 产生操作系统的本地格式(刺,COFF,XCOFF,或DWA ..
发布时间:2016-08-19 15:35:59 C/C++

C8051f312单片机

我不是在C语言非常好,但我有写一个很简单的code到C8051F312微控制器。 我的code不工作。请帮我做什么我错了。 的#include C8051F310.h 的#include stdio.h中SBIT LED_16 = P1 ^ 7; //绿色LED:1 = ON; 0 = OFF无效的init(无效) { //的XBRn registers_init XBR0 = ..
发布时间:2016-08-19 15:25:28 C/C++

调试code用C

有人能告诉我什么是错我的code和为什么它是产生此输出。 code: INT的main(){ 无符号NUM; 焦炭反应;做{ 的printf(“请输入一个正整数大于1且小于2000:”); scanf函数(“%D”,试验#); 如果(NUM→1&放大器;试验#&下; 2000){ 的printf(“所有%D的主要因素,下面给出:\\ n”,NUM); print ..
发布时间:2016-08-19 14:53:14 C/C++

IsBadReadPtr在Unix模拟

是否有一个功能类似于 IsBadReadPtr 在Unix中?至少IsBadReadPtr的一些功能? 我想写这将作出反应,如果不测的过程(如 SIGSEGV ),并回收一些信息的过程。但我想检查指针,以确保数据没有损坏,看看他们是否可以安全地访问。否则死机处理程序本身会崩溃,从而变得一无是处。 有什么建议? 解决方案 通常的方式做到这一点的POSIX系统是使用的write()系统调用 ..
发布时间:2016-08-19 14:34:34 服务器开发

寻找记忆的地方上次释放?

很一般:​​ 有没有一种简单的方法来判断何时访问冲突发生时code线最后释放的内存块? 减一般: 我剖析的理解是,他们覆盖的分配和释放的过程。如果这是真的,他们可能会发生存储code的,去年释放的内存部分,这样,当后来因为崩溃的访问冲突的,你知道是什么释放,那么它最后行了? 具体细节: Windows中,ANSI C,使用Visual Studio 解决方案 是的! 安装的Wi ..
发布时间:2016-08-19 14:16:50 C/C++

使用-g3或-ggdb3或-gdwarf-4,即使GDB宏符号不是present

我有这个C文件(sample.c文件): 的#include<&stdio.h中GT; #定义中号42 #定义ADD(X)(M + X) 诠释的main() { 的printf(“%d个\\ N”,M); 的printf(“%d个\\ N”,ADD(2)); 返回0; } 我编译: $ gcc的-O0 -Wall -g3 sample.c文件-o样本 然后用调试 $ G ..
发布时间:2016-08-19 14:01:02 C/C++

SYSMALLOC:断言失败 - 任何想法如何有效地调试?

我的服务器守护程序工作正常,在大多数机器却在一个我收到: malloc.c:3074:SYSMALLOC:断言`(old_top ==(((mbinptr)(((字符*)及((AV) - GT;箱[(( 1) - 1)* 2)) - __builtin_offsetof(结构个malloc_chunk,FD))))及&放大器; old_size == 0)|| ((无符号长)(ol ..
发布时间:2016-08-19 13:35:48 C/C++

命令行应用程序:如何安装一个子进程为x code调试?

我目前正在在C命令行应用程序在其中创建许多子进程。所以,我需要调试这个孩子code。我建立了X code作为遵循一个子进程。 (见破发点并运行光标。) 执行某个语句之后,我得到如下面图中x code到GBN(885)连接到X code调试。 这是行不通的。我怎么能把子进程x code调试?谢谢你在前进。 解决方案 谷歌和苹果开发者页面是关于这个问题真是无语了,最后我找到了一个很 ..
发布时间:2016-08-19 00:47:54 C/C++

内核崩溃后获得linux内核调试信息

有什么办法内核chrash发生后能得到内核previous调试信息。 我试图建立一个内核模块内核网络堆栈和放大器内部IP层基本上捕获IP数据包;一些修改后,我有相同的数据包发送回NIC进行传输。在所有这些过程我米,的的printk()帮助写调试信息。但是,如果任何事情不顺心和放大器;发生故障的内核,所以我们必须重新启动系统。那么,有没有办法让我的previous调试信息,因为重新启动调试信息后未 ..
发布时间:2016-08-19 00:06:55 服务器开发

调试的崩溃10次在不同的地方的程序

您给出的源是在运行时崩溃的应用程序。在调试器中运行10次后,你会发现它永远不会崩溃在同一个地方。该应用程序是单线程的,并且仅使用C标准库。什么编程错误可能会导致这会崩溃吗?你会如何​​测试每一个? 解决方案 您code可以调用与不确定的行为在任何C标准,包括(但不限于): 未初始化的变量,但尝试使用它的值。 取消对NULL指针。 读取或写入过去的数组的末尾。 定义与下划线和大写 ..
发布时间:2016-08-19 00:05:55 C/C++

BST构建树双指针

我不能确定如何设置一个指针的指针构建树。就像有一次我已到达叶和呼叫插入,我应该怎么插入另一个元素调用插入根节点或根指针的地址?我觉得这个功能的问题是名字根在哪里,应该是双指针吧? 的#include“bst.h” #包括LT&;&stdio.h中GT; #包括LT&;&stdlib.h中GT;//临时节点的任意列表树节点* new_node,*根* TMP,*父母; INT elemArray ..
发布时间:2016-08-18 23:41:47 C/C++

GDB说"无符号表,"但纳米节目文件中有调试符号

我试图调试使用GDB一个简单的C项目,但GDB似乎无法找到该程序的调试符号不管我怎么编译。 当我加载该程序进入GDB,它声称已经成功地读取符号,因为它打印从/home/edward/...done 阅读符号。 然而,当我运行该程序,打破分段错误,然后键入信息当地人,它说:无符号表信息可用。 此外, BT 显示,执行的功能我写了(不是一个系统或库调用)内停止,但没 ..
发布时间:2016-08-18 23:24:52 C/C++

在Win32 API函数调试中断

我想有才能的SetTimer函数休息,看看哪些组件注册什么样的价值观是什么定时器。这可能吗? 解决方案 是的,你可以做到这一点。首先请确保您有为您调试安装的公共符号。 的SetTimer 住在USER32但是,这只是它是什么导出为。要做到这一点,最简单的方法是使用命令行调试器, NTSD 。我们需要它的真实姓名,所以寻找在USER32匹配符号: 0:000>点¯xUSER32! ..
发布时间:2016-08-18 23:22:13 C/C++

如何使GDB打印出十六进制模式中的所有值?

在默认情况下,GDB总是打印/显示所有变量/ 10为基数的参数有什么办法要求GDB总是使用在打印任何东西基地16(和转回默认设置时,我不需要那个)?我知道,它可以通过提供'/ X'的说法打印/显示可以打印,但我不想每次做.... 解决方案 设置输出基数16 (和设置输出基数10 来切换回)。 ..
发布时间:2016-08-18 23:13:26 C/C++

机依赖_write失败与错误EINVAL code

这有实际的问题之前,一些冗长的背景,但是,它承担一些解释,希望能够淘汰一些红鲱鱼。 我们的应用程序,在Microsoft Visual C ++(2005)开发的,采用的是第三方库(其源$ C ​​$ C,我们幸运的是,正好有)出口在其他第三方应用程序使用的COM pressed文件。图书馆是负责创建导出的文件,管理数据和COM pression,一般处理所有错误。最近,我们开始得到的反馈,在某 ..
发布时间:2016-08-18 23:08:50 C/C++开发

打印传单N调用堆栈的水平?

使用C ++和Visual Studio,我在想,如果有,将打印调用堆栈我的API。 preferably,我想深打印调用堆栈5级。窗户是否提供了一个简单的API来让我这样做呢? 解决方案 有许多方法可以做到这一点。 请参阅http://stackoverflow.com/questions/590160/how-to-log-stack-frames-with-windows-x64 ..
发布时间:2016-08-18 22:29:29 C/C++开发

如何打印用换行空结尾的字符串,而不显示在gdb的反斜杠?

我有一个变量 的char * x =“ASD \\ nqwe \\ n ...” 和我要印新行打印作为不换行的反斜杠ñ的。 这可能吗? 解决方案 更​​新: 为什么不直接使用gdb 的printf 命令?(GDB)的printf“%S”,X ASD QWE ... (GDB) 旧的答案: 从调试器中可以执行的命令。只需拨打的printf (GDB)调用printf(“%S”,X) ..
发布时间:2016-08-18 22:23:13 C/C++

gprof的:如何生成链接到主程序共享库函数的调用关系图

我工作的Linux环境。我有两个'C'源代码包火车和test_train。 在编译时火车包生成libtrain.so test_train链接libtrain.so并生成可执行的列车试验 现在我想要生成使用gprof的其中显示调用的主程序功能序列,以及那些里面调用图形libtrain.so 我编译和使用-pg选项连接这两个包和调试水平O0。 我做./train-test后,会生成 ..
发布时间:2016-08-18 22:17:53 C/C++