linux下 比较简单,这里不在说明,
  
  windows下 相对复杂一点,用SetUnhandledExceptionFilter 来捕获 MiniDumpWriteDump 来写dmp文件,这种方法还不够完全,一些错误 一样无法捕获 比如 多次 delete ,可修改注册表 crash自动生成dmp 而不用代码去控制 结合代码控制 一起使用
  
  #if _WIN32
  
  #include <windows.h>
  
  #include <dbghelp.h>
  
  #pragma comment(lib, "dbghelp.lib")
  
  void myInvalidParameterHandler(const wchar_t* expression,
  
  const wchar_t* function,
  
  const wchar_t* file,
  
  unsigned int line,
  
  uintptr_t pReserved)
  
  {
  
  throw 1;
  
  }
  
  LONG CustomCrashHandledExceptionFilter(_EXCEPTION_POINTERS *ExceptionInfo)
  
  {
  
  CHAR strDumpFile[MAX_PATH] = { 0 };
  
  SYSTEMTIME tm;
  
  HANDLE hFile = NULL;
  
  time_t rawtime;
  
  struct tm * t;
  
  time(&rawtime);
  
  t = localtime(&rawtime);
  
  sprintf(strDumpFile, "%d%s%d-%04d-%02d-%02d-%02d-%02d-%02d.dmp", sid, name.c_str(), g_Inner_id, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->www.boyunylpt1.com tm_min, t->tm_sec);
  
  hFile = CreateFileA(strDumpFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  
  if (hFile != INVALID_HANDLE_VALUE)
  
  {
  
  MINIDUMP_EXCEPTION_INFORMATION ExInfo;
  
  ExInfo.ThreadId = GetCurrentThreadId();
  
  ExInfo.ExceptionPointers www.maituyul1.cn = ExceptionInfo;
  
  ExInfo.ClientPointers = NULL;
  
  BOOL bOK = MiniDumpWriteDump(
  
  GetCurrentProcess(www.furongpt.com),
  
  GetCurrentProcessId(www.dashuju2.cn),
  
  hFile,
  
  MiniDumpNormal,
  
  &ExInfo,
  
  NULL,
  
  NULL);
  
  CloseHandle(hFile);
  
  }
  
  return EXCEPTION_CONTINUE_SEARCH;
  
  }
  
  LPTOP_LEVEL_EXCEPTION_FILTER WINAPI EmptySetUnhandledExceptionFilter(
  
  LPTOP_LEVEL_EXCEPTION_www.yingka178.com FILTER lpTopLevelExceptionFilter)
  
  {
  
  return NULL;
  
  }
  
  void myPurecallHandler(void)
  
  {
  
  throw 1;
  
  }
  
  BOOL HookSetUnhandledExceptionFilter()
  
  {
  
  HMODULE hKernel32 = LoadLibraryA(("kernel32.dll"));
  
  if (hKernel32 == NULL) return FALSE;
  
  void *pOrgEntry = GetProcAddress(hKernel32, "SetUnhandledExceptionFilter");
  
  if (pOrgEntry == www.yongshi123.cn NULL) return FALSE;
  
  unsigned char newJump[100];
  
  DWORD dwOrgEntryAddr = (DWORD)pOrgEntry;
  
  dwOrgEntryAddr +www.yongshiyule178.com= 5; // add 5 for 5 op-codes for jmp far
  
  void *pNewFunc = &EmptySetUnhandledExceptionFilter;
  
  DWORD dwNewEntryAddr www.michenggw.com= (DWORD)pNewFunc;
  
  DWORD dwRelativeAddr =www.dfgjpt.com dwNewEntryAddr - dwOrgEntryAddr;
  
  newJump[0] = 0xE9; // JMP absolute
  
  memcpy(&newJump[1], &dwRelativeAddr, sizeof(pNewFunc));
  
  SIZE_T bytesWritten;
  
  BOOL bRet = WriteProcessMemory(GetCurrentProcess(),
  
  pOrgEntry, newJump, sizeof(pNewFunc) + 1, &bytesWritten);
  
  return bRet;
  
  }
  
  class CrashHandler
  
  {
  
  public:
  
  CrashHandler()
  
  {
  
  // SetErrorMode(SEM_FAILCRITICALERRORS);
  
  SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)CustomCrashHandledExceptionFilter);
  
  _purecall_handler old_pure_handle;
  
  old_pure_handle = _set_purecall_handler(myPurecallHandler);
  
  _invalid_parameter_handler oldHandler;
  
  oldHandler = _set_invalid_parameter_handler(myInvalidParameterHandler);
  
  HookSetUnhandledExceptionFilter();
  
  在高阶导数的时候说过,如果两个函数每一阶导数都相等,那么"理论上"两个函数是相等的。
  
  因为我们有cos′(x)=−sin(x)、cos′′(x)=−cos(x)、cos′′′(x)=sin(x)、cos′′′′(x)=cos(x)
  
  此后就是−sin(x)、−cos(x)、sin(x)、cos(x)循环,求导次数x,其xmod 4=1,2,3,0的时候分别对应这四个。
  
  cos(0)=1⇒f(x)=a0+∑ni=1ai⋅0=a0=1
  
  cos′(0)=0⇒f′(x)=1⋅a1+∑ni=2(i−1)ai⋅0=1!⋅a1=0
  
  cos′′(0)=−1⇒f′′(x)=1⋅2⋅a2+∑ni=3(i−1)⋅(i−2)ai=2!⋅a2=−1
  
  cos′′′(0)=0⇒f′′′(x)=1⋅2⋅3a3+∑ni=4(i−1)⋅(i−2)⋅(i−3)ai=3!⋅a3=0
  
  cos′′′′(0)=1⇒f′′′′(x)=1⋅2⋅3⋅4a4+∑ni=5(i−1)⋅(i−2)⋅(i−3)⋅(i−4)ai=4!⋅a4=1
  
  可以发现规律了,假设取了i次导数,且有i=2n。
  
  n是奇数有:i!⋅ai=−1⇒ai=−1i!
  
  n是偶数有:i!⋅ai=1⇒ai=1i!
  
  也就是cos(x)=1−x22!+x44!−x66!+x48!−⋯
  
  同样的思路可以证明sin(x)=∑∞i=2n+1,n∈N(−1)nxii!=x−x33!+x55!−x77!+⋯
  
  证明ex=⋯比这更容易,根据定义(ex)′=ex,重复上述过程即可。
  
  麦克劳林展开式
  
  ex=∑∞i=0xii!=1+x11!+x22!+x33!+x44!+⋯
  
  sin(x)=∑∞i=2n+1,n∈N(−1)nxii!=x−x33!+x55!−x77!+⋯
  
  cos(x)=∑∞i=2n,n∈N(−1)nxii!=1−x22!+x44!−x66!+⋯
  
  本文正题
  
  eix=1+(ix)11!+(ix)22!+(ix)33!+(ix)44!+(ix)55!=1+ix1!−x22!−ix33!+x44!+ix55!−⋯
  
  把带有i的提出来有:
  
  eix=1−x22!+x44!−x66!+⋯+i(x−x33!+x55!−x77!)=cos(x)+i×sin(x)
  
  当x=π的时候
  
  eiπ=cos(π)+i×sin(π)=−1
  
  所以

Crash dump进程信息的更多相关文章

  1. [Erlang 0057] Erlang 排错利器: Erlang Crash Dump Viewer

    http://www.cnblogs.com/me-sa/archive/2012/04/28/2475556.html Erlang Crash Dump Viewer真的是排错的天兵神器,还记得我 ...

  2. iOS 几种常用的 crash log 崩溃信息调试方法

    前言:crash log 对 定位崩溃问题 ,并且不容易复现,尤其是及时对appstore 上正在运营的 app 的迭代改进来说 非常重要. 1 crash两种情况 1.1 测试环境下 追踪bug 1 ...

  3. Gmail进程信息转储分析工具pdgmail

    Gmail进程信息转储分析工具pdgmail   进程信息转储(Process Memory Dump)是数字取证的重要方式.通过分析对应进程的信息转储,可以获取大量的信息.Kali Linux提供一 ...

  4. 记录linux 生成crash dump文件步骤

    执行文件编译时加入-g 命令 例如 g++ -g test.cpp 查看当前系统限制情况 ulimit -a 设置crash dump 文件大小 ulimit -c unlimited unlimit ...

  5. 使用jps查看JVM进程信息

    VM进程状态工具 - 列出目标系统上已检测的HotSpot Java虚拟机进程信息.可直接在装有java运行环境的Windows 或者 Linux机器上使用命令行执行jps命令.一个典型的应用场景,例 ...

  6. C#获取CPU占用率、内存占用、磁盘占用、进程信息

    代码: using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading ...

  7. ALT+TAB切换时小图标的添加 界面透明 屏幕大小 竖行字体 进程信息

    一,ALT+TAB切换时小图标的添加 Dlg类中添加变量 protected: HICON m_hIcon; #define IDR_MAINFRAME 128 ICON IDR_MAINFRAME, ...

  8. SNMP远程监控进程信息的OID

    最近有个项目需要用snmp远程监控进程信息.于是我查了一下资料. 一.资料 .1.3.6.1.2.1.25.4.2.1.1.iso.org.dod.internet.mgmt.mib-2.host.h ...

  9. Linux常用命令 查看进程信息时 copy的-----温故而知新

    1.查进程    ps命令查找与进程相关的PID号:    ps a 显示现行终端机下的所有程序,包括其他用户的程序.    ps -A 显示所有程序.    ps c 列出程序时,显示每个程序真正的 ...

随机推荐

  1. 第40章 CAN—通讯实验—零死角玩转STM32-F429系列

    第40章 CAN—通讯实验—零死角玩转STM32-F429系列   第40章     CAN—通讯实验 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视 ...

  2. Spark SQL -- Hive

    使用Saprk SQL 操作Hive的数据 前提准备: 1.启动Hdfs,hive的数据存储在hdfs中; 2.启动hive -service metastore,元数据存储在远端,可以远程访问; 3 ...

  3. Docker:一个装应用的容器

    一:简介:你是否经历过“我本地运行没问题啊!““哪个哥们有写死循环了““完了,服务器撑不住了“等等问题,docker就是这么帮你解决问题的工具,它可以帮你把web应用自动化打包和发布,在服务型环境下进 ...

  4. jQuery.bsgrid

    http://thebestofyouth.com/bsgrid/ 支持json.xml数据格式,皮肤丰富并且容易定制,支持表格编辑.本地数据.导出参数构建等实用便捷的功能,容易扩展,更拥有丰富的示例 ...

  5. 网络对抗技术 2017-2018-2 20152515 Exp2 后门原理与实践

    1.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) 关于netcat:是一个底层工具,进行基本的TCP UDP数据收发.常被与其他工具结合使用,起到后门的作用. 相 ...

  6. 20155302《网络对抗》Exp6 信息收集与漏洞扫描

    20155302<网络对抗>Exp6 信息收集与漏洞扫描 实验内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测 ...

  7. 20155310 《网络攻防》Exp4 恶意代码分析

    20155310 <网络攻防>Exp4 恶意代码分析 基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些, ...

  8. JavaEE笔记(十三)

    #单一职责原则 一个类只做一件事 #开闭原则 拓展开,修改源码闭 #动态代理 1 基于接口的方式 jdk的动动代理2 基于类的方式 cglib的代理 #SSH整合 1.spring(容器)    1& ...

  9. Jenkins控制台输出乱码

    一.问题详情 jenkins构建mav任务,在控制台显示乱码: 二.原因分析 1. 查看系统编码和tomcat的编码都正常 # grep encoding /usr/local/tomcat/conf ...

  10. CS229笔记:支持向量机

    考虑一个分类问题,用\(1\)表示正类标签,用\(-1\)表示负类标签,引入假设函数\(h\): \[ \begin{align*} g(z) &= \begin{cases} 1 & ...