zoukankan      html  css  js  c++  java
  • 让段错误更优雅一些

    段错误或者其他导致程序退出的错误一直以来都像蛮不讲理的莽汉一样,把我们辛辛苦苦开发的程序肆意破坏掉,留下一个或大或小的core文件让我们头疼去,我们痛哭流涕之后默默承受这份忧伤。。。

    段错误由SIGEGV产生,可以被用户捕捉,也就给了我们保存程序重要数据的机会,借用glibc某函数处理SIGEGV的一个思路,我们可以把段错误变成一次会产生core文件的正常退出。

    1.注册SIGEGV处理过程egv_handler。

    2.SIGEGV处理过程egv_handler首先保存程序的关键数据,将必要数据持久化。

    3.egv_handler的最后恢复SIGEGV的默认处理动作并重新抛出SIGEGV信号。

    第三步骤的代码

      /* Pass on the signal (so that a core file is produced).  */
      sa.sa_handler = SIG_DFL;
      sigemptyset (&sa.sa_mask);
      sa.sa_flags = 0;
      sigaction (signal, &sa, NULL);
      raise (signal);

    至此段错误对程序不再具有威胁性,吐槽一下,我实在不喜欢优雅这个形容词,程序员和程序都是理性的代码,用这么感性的装逼词汇,我自己都被感动的要吐了。

  • 相关阅读:
    css页面自适应 媒体查询
    微信小程序rich-text中的nodes属性
    解析base64数据流---加载pdf
    用伪元素完成箭头
    搭建vue --2.x
    搭建Vue项目 vue-cli vue1.x
    Chrome----TCP
    单进程VS多进程
    线程VS进程
    Chrome---network模块---Timing
  • 原文地址:https://www.cnblogs.com/learn-my-life/p/4664665.html
Copyright © 2011-2022 走看看