- 浏览: 63209 次
- 性别:
- 来自: 武汉
*****************************************1***************************************
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
void dump(int signo)
{
char buf[1024];
char cmd[1024];
FILE *fh;
snprintf(buf, sizeof(buf), "/proc/%d/cmdline", getpid());
if(!(fh = fopen(buf, "r")))
exit(0);
if(!fgets(buf, sizeof(buf), fh))
exit(0);
fclose(fh);
if(buf[strlen(buf) - 1] == '\n')
buf[strlen(buf) - 1] = '\0';
snprintf(cmd, sizeof(cmd), "gdb %s %d", buf, getpid());
system(cmd);
exit(0);
}
void
dummy_function (void)
{
unsigned char *ptr = 0x00;
*ptr = 0x00;
}
int
main (void)
{
signal(SIGSEGV, &dump);
dummy_function ();
return 0;
}
~
*****************************************2***********************
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
/* A dummy function to make the backtrace more interesting. */
void
dummy_function (void)
{
unsigned char *ptr = 0x00;
*ptr = 0x00;
}
void dump(int signo)
{
void *array[10];
size_t size;
char **strings;
size_t i;
size = backtrace (array, 10);
strings = backtrace_symbols (array, size);
printf ("Obtained %zd stack frames.\n", size);
for (i = 0; i < size; i++)
printf ("%s\n", strings[i]);
free (strings);
exit(0);
}
int
main (void)
{
signal(SIGSEGV, &dump);
dummy_function ();
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
void dump(int signo)
{
char buf[1024];
char cmd[1024];
FILE *fh;
snprintf(buf, sizeof(buf), "/proc/%d/cmdline", getpid());
if(!(fh = fopen(buf, "r")))
exit(0);
if(!fgets(buf, sizeof(buf), fh))
exit(0);
fclose(fh);
if(buf[strlen(buf) - 1] == '\n')
buf[strlen(buf) - 1] = '\0';
snprintf(cmd, sizeof(cmd), "gdb %s %d", buf, getpid());
system(cmd);
exit(0);
}
void
dummy_function (void)
{
unsigned char *ptr = 0x00;
*ptr = 0x00;
}
int
main (void)
{
signal(SIGSEGV, &dump);
dummy_function ();
return 0;
}
~
*****************************************2***********************
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
/* A dummy function to make the backtrace more interesting. */
void
dummy_function (void)
{
unsigned char *ptr = 0x00;
*ptr = 0x00;
}
void dump(int signo)
{
void *array[10];
size_t size;
char **strings;
size_t i;
size = backtrace (array, 10);
strings = backtrace_symbols (array, size);
printf ("Obtained %zd stack frames.\n", size);
for (i = 0; i < size; i++)
printf ("%s\n", strings[i]);
free (strings);
exit(0);
}
int
main (void)
{
signal(SIGSEGV, &dump);
dummy_function ();
return 0;
}
发表评论
-
C++内存管理
2011-09-19 10:45 8121 内存管理 伟大的Bill G ... -
有用的网址
2011-08-04 12:44 630http://searchdns.netcraft.com/ -
vim高级应用
2011-08-04 10:29 1008命令模式: “s”为表 ... -
c/c++ 调试
2011-06-08 15:31 840readelf -s a.out 可以查看符号表,就能找到对应 ... -
网站列表
2011-02-25 09:48 692http://www.rosoo.net/ NO ... -
高性能服务器注意事项
2011-01-18 13:09 841对于这里所说的服务器,更精确的定义应该是每秒处理大量离散消息或 ... -
在 Linux 平台中调试 C/C++ 内存泄漏方法
2010-10-20 15:56 920由于 C 和 C++ 程序中完全由程序员自主申请和释放内存 ... -
用socket编写C/S结构程序的流程图
2010-10-08 17:07 24661.面向连接的套接字的系统调用时序图 无连接协议的套接字调用 ... -
将文件读入内存
2010-09-14 17:35 1113将文本文件读入内存。需要用到fseek、fread和ftell ... -
STL中的容器的遍历的使用方法
2010-08-12 17:39 2089STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器 ... -
50 c/c++ 源码网站
2010-08-03 15:47 7931、http://snippets.dzone.com/tag ... -
值得注意的函数
2010-08-03 13:48 558函数 严重性 解决 ... -
调用系统命令
2010-08-02 12:52 646int get_system_info(char* cmdst ... -
结构体对齐
2010-07-30 13:59 13281,比如: struct{ short a1; sh ... -
LINUX c++线程池框架
2010-07-15 11:25 1417本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进 ... -
一个简单的linux线程池
2010-07-12 18:10 983线程池:简单地说,线程池 就是预先创建好一批线程,方便、快速 ... -
文件字符串处理
2010-06-30 09:12 705#include <iostream> #incl ... -
不能用类成员函数作为线程函数
2010-06-29 17:12 868不能用类成员函数作为线程函数 -
c++ 字符串替换
2010-06-24 10:43 995#include <string> #incl ...
相关推荐
WinCE串口调试程序 WinCE串口调试程序 WinCE串口调试程序
GDB 调试程序 GDB 是一个强大的命令行调试工具,主要帮忙用户完成四个方面的功能:启动程序、设置断点、检查程序状态和动态改变程序执行环境。GDB 的强大之处在于其可以形成执行序列,形成脚本,非常容易集成在一起...
陈浩的《用GDB调试程序》和守望的个人博客的《GDB调试指南》这两份资料,提供了丰富的实践案例和详细的操作步骤,帮助读者从基础到进阶掌握GDB的使用技巧。通过阅读这些教程,你可以了解如何有效地使用GDB解决实际...
在Windows平台上,程序崩溃往往给开发者带来巨大的困扰。WinDbg是一款强大的调试工具,由Microsoft开发,用于诊断和解决...通过阅读《WinDbg调试程序崩溃.pdf》这份文档,你将获得更全面的WinDbg实战技巧和案例解析。
《GDB调试程序[陈皓]》与《GDB调试工具指南》这两份PDF文档,是深入了解和精通GDB(GNU Debugger)这一强大调试工具的重要参考资料。GDB是开源世界中广泛使用的C、C++以及其他多种语言的调试器,它允许开发者在运行...
串口调试程序是计算机技术中一个重要的工具,主要用于与硬件设备进行通信,通过串行接口进行数据传输和接收。在嵌入式系统开发、物联网应用、电子工程等领域中,串口调试程序扮演着不可或缺的角色。它能够帮助开发者...
这个“电动车控制器程序 STM8S903双模调试程序”很显然,是针对STM8S903设计的一套软件系统,旨在实现电动车控制器的双模式操作。 首先,我们要理解什么是双模控制器。双模控制器通常指的是控制器可以在两种不同的...
串口调试程序sscom32,挺好用的 串口调试程序sscom32,挺好用的
串口通信调试程序
VC如何调试程序,可以帮助差错哦,更好地理解程序流程,很好用的
在Windows 10操作系统下,正确安装并配置其驱动及调试程序是确保设备正常运行的关键。本文将详细介绍如何在WIN10系统中安装"ZKFinger SDK 5.0 URU4000B",以及如何进行调试。 首先,我们来看"ZKFinger SDK 5.0"。这...
凌博控制器调试程序LBMC GUI v3.3.0 国内版(150401update),可以对二代三代72122、72152、72182控制器参数进行设置。
带异或校验的串口调试程序,经过调试成功的串口通讯程序,接受字符串,和发送单个字符和字符串的程序。
DEBUG调试程序的应用
labview串口调试程序,用于检测在labview环境下检查串口的连接状态
在进行网络编程或者系统调试时,TCPUDP调试程序扮演着至关重要的角色。 TCPUDP调试程序2是一款专为开发者设计的工具,用于测试和调试TCP和UDP通信。它可以帮助程序员检查和验证网络应用程序的数据传输过程,确保...
本教程将详细讲解如何利用MATLAB的GUI功能来开发一个串口调试程序。 首先,"untitled.fig"文件是MATLAB GUI设计的图形布局文件,它定义了GUI的外观,包括按钮、文本框、滑块等控件的位置和属性。在MATLAB的GUIDE...
国网2013版终端调试程序,可以解析,可以模拟主站