这是文件/proc/self/smaps的片段:00af8000-00b14000r-xp00000000fd:0016417/lib/ld-2.8.soSize:112kBRss:88kBPss:1kBShared_Clean:88kBShared_Dirty:0kBPrivate_Clean:0kBPrivate_Dirty:0kBReferenced:88kBSwap:0kB00b14000-00b15000r--p0001c000fd:0016417/lib/ld-2.8.soSize:4kBRss:4kBPss:4kBShared_Clean:0kBShared_Dirty:
嗨,我最近在一个用C编写的linux项目中。这个应用程序有几个进程,它们共享一block共享内存......当应用程序运行大约几个小时时,一个进程崩溃而没有任何足迹,所以很难知道问题是什么或者我可以从哪里开始审查代码....好吧,它可能是内存溢出或指针被滥用......但我不知道......您是否有任何工具或任何方法来检测问题...如果得到解决,将不胜感激。谢谢你的建议... 最佳答案 在启动程序之前,启用核心转储:ulimit-cunlimited(并确保进程的工作目录是进程可写的)进程崩溃后,它应该留下一个core文件,然后你可
嗨,我最近在一个用C编写的linux项目中。这个应用程序有几个进程,它们共享一block共享内存......当应用程序运行大约几个小时时,一个进程崩溃而没有任何足迹,所以很难知道问题是什么或者我可以从哪里开始审查代码....好吧,它可能是内存溢出或指针被滥用......但我不知道......您是否有任何工具或任何方法来检测问题...如果得到解决,将不胜感激。谢谢你的建议... 最佳答案 在启动程序之前,启用核心转储:ulimit-cunlimited(并确保进程的工作目录是进程可写的)进程崩溃后,它应该留下一个core文件,然后你可
为冗长的帖子道歉,我无法以较短的方式制定它。另外,也许这更适合Unix和LinuxStackExchange,但我会先在这里尝试,因为有一个ftrace标签。无论如何-我想观察用户程序的机器指令是否在完整function_graph的上下文中执行使用ftrace捕获.一个问题是我需要这个用于较旧的内核:$uname-aLinuxmypc2.6.38-16-generic#67-UbuntuSMPThuSep618:00:43UTC2012i686i686i386GNU/Linux...而在这个版本中,没有UPROBES-其中,如Uprobesin3.5[LWN.net]笔记,应该能够做
为冗长的帖子道歉,我无法以较短的方式制定它。另外,也许这更适合Unix和LinuxStackExchange,但我会先在这里尝试,因为有一个ftrace标签。无论如何-我想观察用户程序的机器指令是否在完整function_graph的上下文中执行使用ftrace捕获.一个问题是我需要这个用于较旧的内核:$uname-aLinuxmypc2.6.38-16-generic#67-UbuntuSMPThuSep618:00:43UTC2012i686i686i386GNU/Linux...而在这个版本中,没有UPROBES-其中,如Uprobesin3.5[LWN.net]笔记,应该能够做
除了DDD之外,还有什么可以绘制我的数据结构图,就像在Linux上运行的DDD一样吗?ddd可以运行,只是有一种陈旧笨拙的感觉,只是想探索替代方案(如果有的话)。这张图片的顶部网格就是我要说的: 最佳答案 不介意看看here(GDB前端列表)?我建议此列表应该有用。 关于c-DDD替代方案,它也绘制了数据结构的漂亮图片,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1701521
除了DDD之外,还有什么可以绘制我的数据结构图,就像在Linux上运行的DDD一样吗?ddd可以运行,只是有一种陈旧笨拙的感觉,只是想探索替代方案(如果有的话)。这张图片的顶部网格就是我要说的: 最佳答案 不介意看看here(GDB前端列表)?我建议此列表应该有用。 关于c-DDD替代方案,它也绘制了数据结构的漂亮图片,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1701521
调试堆栈值损坏的好方法是什么。在我的程序中,有时this指针的地址会在一个方法返回后更改,该方法对文件描述符执行关闭操作。我调试了几个小时的程序,但找不到问题所在。找出this指针地址发生变化的好方法是什么?当我在this指针上手动添加watch时,不会发生错误。当我尽可能地剥离我的代码时,错误仍然发生。我尝试了Valgrind,但没有发现任何早期堆栈损坏。我设法检测到错误发生的时间,我在64位模式下编译了代码。它的地址从0xxxxxxx更改为0x1000000xxxxxxx。我在发生错误的方法中检查了它的地址,我在地址更改时发现了这一点(请参阅第一个段落)。有没有其他方法可以找出问题
调试堆栈值损坏的好方法是什么。在我的程序中,有时this指针的地址会在一个方法返回后更改,该方法对文件描述符执行关闭操作。我调试了几个小时的程序,但找不到问题所在。找出this指针地址发生变化的好方法是什么?当我在this指针上手动添加watch时,不会发生错误。当我尽可能地剥离我的代码时,错误仍然发生。我尝试了Valgrind,但没有发现任何早期堆栈损坏。我设法检测到错误发生的时间,我在64位模式下编译了代码。它的地址从0xxxxxxx更改为0x1000000xxxxxxx。我在发生错误的方法中检查了它的地址,我在地址更改时发现了这一点(请参阅第一个段落)。有没有其他方法可以找出问题
作为使用MSVisualStudio的C++开发人员,我已经工作了几年作为工作平台。由于我私下更喜欢使用linux,所以我最近采取了也有机会将我的工作环境转移到Linux。由于我多年来一直在优化我的Windows环境,当然,事实证明有几件事丢失了或没有按预期工作。因此,我有一些问题,我还没有得到有用的答案。让我们开始下面的问题,稍后可能会出现不同的问题。问题是我已经多次偶然发现的问题,每当我被迫在非Windows平台上调试特定于平台的错误时。简单来说:如何在linux调试时显示Unicode(UCS2编码)字符串?现在我想出了一些更多的细节。我们的库内部使用基于Unicode的Stri