Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

问题

core文件堆栈:

Core was generated by `/data/app/saki_test//bin//saki_svrd`.
Program terminated with signal 11, Segmentation fault.
#0  0x08268a79 in __gnu_cxx::__exchange_and_add(int volatile*, int) ()
(gdb) bt
#0  0x08268a79 in __gnu_cxx::__exchange_and_add(int volatile*, int) ()
#1  0x0824f730 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() ()
...

原因

从上面 core 文件可以看出 string 结构被破坏,析构的时候直接挂掉了,被破坏的原因自然是周围(最大可能是之前的位置)数据写超了,写到了自己的一亩三分地来了,这种宕机的特点是比较难定位,宕机的位置一般是STL容器或者是自己定义的类结构析构的时候 出错,排查的一般方法就是找代码的周围行或者是相邻时刻执行的代码行,排查可能超出内存边界的写操作,预防的方法自然是加强临界地址的判定。

解决办法

定位原因是用于存放结果的字符串数组写超了,解决办法是预先估计数据大小,再使用 std::vector 来替换字符串使用。

    int new_len = len*2;
    std::vector<uint8_t> out_buff(new_len, 0);
    if (out_buff.size() > 0) {
        ...
    }
    ....

以上~

本文链接:/2018/06/20/segmentation-fault-__gnu_cxx__exchange_and_addint-volatile-int/
请尊重作者的劳动成果,转载请注明出处!Sakishum 博客保留对文章的所有权利。

Pingbacks已打开。

Trackbacks
  1. crypto software 发布于 2019年2月17日 15:32 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  2. automated trading 发布于 2019年2月17日 15:37 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  3. cryptohopper videos 发布于 2019年2月17日 15:45 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  4. buy cryptohopper 发布于 2019年2月17日 15:45 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  5. crypothopper free 发布于 2019年2月17日 15:49 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  6. trading 发布于 2019年2月17日 15:53 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  7. Make bitcoin 发布于 2019年2月17日 15:59 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  8. Automated crypto currency software 发布于 2019年2月17日 16:11 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  9. How much is cryptohopper 发布于 2019年2月17日 16:20 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  10. bitcoin trading bot 发布于 2019年2月17日 16:23 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  11. technical analysis trade 发布于 2019年2月17日 16:43 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  12. trading bot 发布于 2019年2月17日 16:44 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  13. bitcoin sofware 发布于 2019年2月17日 16:46 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  14. bitcoin cash 发布于 2019年2月17日 16:49 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  15. cryptocurrencies 发布于 2019年2月17日 16:52 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  16. automated trading 发布于 2019年2月17日 16:52 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  17. cryptocurrency 发布于 2019年2月17日 16:57 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  18. shrimpy 发布于 2019年2月17日 16:59 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  19. crypot app 发布于 2019年2月17日 17:01 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  20. buy cryptohopper 发布于 2019年2月17日 17:03 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  21. crypto hopper 发布于 2019年2月17日 17:03 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  22. is cryptohopper any good 发布于 2019年2月17日 17:05 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  23. cryptohopper free trial 发布于 2019年2月17日 17:06 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  24. is cryptohopper legit 发布于 2019年2月17日 17:23 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  25. how much is cryptohopper 发布于 2019年2月17日 17:24 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  26. cryptohopper automated trading 发布于 2019年2月17日 17:32 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  27. crypto bot 发布于 2019年2月17日 17:33 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  28. bitcoin sofware 发布于 2019年2月17日 17:33 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  29. bitocoin trading bots 发布于 2019年2月17日 17:37 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  30. buy cryptohopper 发布于 2019年2月17日 17:38 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  31. bitcoin app 发布于 2019年2月17日 17:40 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  32. Cryptohopper trading bot 发布于 2019年2月17日 17:41 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  33. bitcoin exchange 发布于 2019年2月17日 17:43 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  34. is cryptohopper a scam 发布于 2019年2月17日 17:45 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  35. cryptohopper free trial 发布于 2019年2月17日 17:46 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  36. automated crypotocurrency trading 发布于 2019年2月17日 17:50 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  37. Exchange 发布于 2019年2月17日 17:53 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  38. trade bot 发布于 2019年2月17日 17:54 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  39. Crypto software 发布于 2019年2月17日 17:56 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  40. Technical analysis trade 发布于 2019年2月17日 17:57 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  41. Automated botcoin software 发布于 2019年2月17日 17:57 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  42. crypot app 发布于 2019年2月17日 18:00 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  43. Cryptohopper trading bot 发布于 2019年2月17日 18:07 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  44. automated crypotocurrency trading 发布于 2019年2月17日 18:10 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  45. Bitcoin exchange 发布于 2019年2月17日 18:23 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  46. shrimpy 发布于 2019年2月17日 18:23 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  47. Crypto software 发布于 2019年2月17日 18:25 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

  48. does cryptohopper work 发布于 2019年2月17日 18:41 #

    Sakishum's blog - Segmentation fault : __gnu_cxx::__exchange_and_add(int volatile*, int) ()

引用地址

评论已关闭