最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于C++出現(xiàn)Bus error問(wèn)題的排查與解決

 更新時(shí)間:2024年01月30日 10:36:53   作者:普羅米修斯Aaron_Swartz  
項(xiàng)目代碼中經(jīng)常出現(xiàn)莫名其妙的Bus error問(wèn)題,并且代碼中增加很多try catch 后依然不能將錯(cuò)誤捕獲,一旦Bus erro出現(xiàn),進(jìn)程直接崩潰掉,所以本文給大家介紹了關(guān)于C++出現(xiàn)Bus error問(wèn)題的排查與解決,需要的朋友可以參考下

前言

項(xiàng)目代碼中經(jīng)常出現(xiàn)莫名其妙的Bus error問(wèn)題,并且代碼中增加很多try catch 后依然不能將錯(cuò)誤捕獲,一旦Bus erro出現(xiàn),進(jìn)程直接崩潰掉。類(lèi)似如下這種:

異常提示

經(jīng)查詢(xún)google,出現(xiàn)該問(wèn)題一般是因?yàn)榈刂肺磳?duì)齊引起的,也就是程序試圖訪(fǎng)問(wèn)一個(gè)不是地址的值。從而導(dǎo)致該錯(cuò)誤。后經(jīng)公司高工通過(guò)gdb運(yùn)行代碼后查看匯編發(fā)現(xiàn),寄存器中確實(shí)存儲(chǔ)了一個(gè)非地址的值(50位, 64位機(jī)器的實(shí)際內(nèi)存地址應(yīng)該為48位,高位用于尋址),導(dǎo)致在訪(fǎng)問(wèn)時(shí)出現(xiàn)Bus-error。

更奇怪的是,該問(wèn)題不會(huì)一直復(fù)現(xiàn),而是經(jīng)常跑幾個(gè)小時(shí),然后在調(diào)用函數(shù)指針的時(shí)候崩潰一次。提示UpdateDataPtr指向的一個(gè)空地址。

在這里插入圖片描述

對(duì)于此,高工的判斷要么是數(shù)組越界,要么是因?yàn)橐爸羔槍?dǎo)致該函數(shù)指針被意外修改。

順著這個(gè)思路,一開(kāi)始是通過(guò)內(nèi)存監(jiān)控,查看是誰(shuí)修改了該內(nèi)存,但是并未守到結(jié)果。此時(shí)高工想通過(guò)分析內(nèi)存的方式看能不能找到一些線(xiàn)索。

*** 操作方法就是在該指針前后增加標(biāo)記變量,然后通過(guò)程序掛掉時(shí)候的core dump 查看那時(shí)刻的內(nèi)存結(jié)構(gòu),從而嘗試分析問(wèn)題***

std_function.h

最后發(fā)現(xiàn)代碼中的一個(gè)單例中定義了一個(gè)數(shù)組u_char crcbuf[64]; 在寫(xiě)這個(gè)數(shù)據(jù)的時(shí)候發(fā)生越界,最終將該變量下的指針變量也覆蓋了

寫(xiě)成我們接收到的里程計(jì)數(shù)據(jù)了,從此真相大白!

在這里插入圖片描述

對(duì)于此,接著分析是如何導(dǎo)致該問(wèn)題的呢?

看看報(bào)文就知道了,正常報(bào)文的數(shù)據(jù)部分出現(xiàn)了報(bào)頭一樣的情況,導(dǎo)致程序誤認(rèn)為讀取的數(shù)據(jù)大小為176個(gè)字節(jié),那么在計(jì)算crcbuf的時(shí)候也會(huì)嘗試放入176個(gè)字節(jié),最終產(chǎn)生數(shù)組越界,將函數(shù)指針覆蓋。

問(wèn)題數(shù)據(jù)

總結(jié)

1 該問(wèn)題從出現(xiàn)到解決持續(xù)了好幾周,一直沒(méi)有好的方案。

2 遇到問(wèn)題不能回避,應(yīng)該迎難而上,實(shí)在不行請(qǐng)教公司高工。

3 C++ 中無(wú)法對(duì)數(shù)組越界的問(wèn)題進(jìn)行捕獲, 因此務(wù)必小心使用數(shù)組和指針

4 C++中內(nèi)存分析和gdb調(diào)試要及早掌握,對(duì)于分析復(fù)雜問(wèn)題幫助很大

以上就是關(guān)于C++出現(xiàn)Bus error問(wèn)題的排查與解決的詳細(xì)內(nèi)容,更多關(guān)于C++出現(xiàn)Bus error的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Qt網(wǎng)絡(luò)編程之TCP通信及常見(jiàn)問(wèn)題

    Qt網(wǎng)絡(luò)編程之TCP通信及常見(jiàn)問(wèn)題

    這篇文章主要為大家詳細(xì)介紹了Qt網(wǎng)絡(luò)編程之TCP通信及常見(jiàn)問(wèn)題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • OpenCV實(shí)現(xiàn)輪廓檢測(cè)與繪制

    OpenCV實(shí)現(xiàn)輪廓檢測(cè)與繪制

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)輪廓檢測(cè)與繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語(yǔ)言鏈表詳解及代碼分析

    C語(yǔ)言鏈表詳解及代碼分析

    這篇文章主要介紹了C語(yǔ)言鏈表詳解及代碼分析,說(shuō)明了鏈表的定義與概念,通過(guò)詳細(xì)的代碼展示了基于鏈表的增刪改查功能,希望本文能對(duì)你有所幫助
    2021-06-06
  • C++ boost::asio編程-域名解析詳細(xì)介紹

    C++ boost::asio編程-域名解析詳細(xì)介紹

    這篇文章主要介紹了C++ boost::asio編程-域名解析詳細(xì)介紹的相關(guān)資料,這里附有實(shí)例代碼,幫助大家學(xué)習(xí)理解這部分知識(shí),需要的朋友可以參考下
    2016-11-11
  • Qt實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的示例代碼

    Qt實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的示例代碼

    本文主要介紹了Qt實(shí)現(xiàn)網(wǎng)絡(luò)聊天室,實(shí)現(xiàn)一個(gè)在線(xiàn)聊天室, 使用tcp對(duì)客戶(hù)端和服務(wù)器端進(jìn)行通訊。具有一定的參考價(jià)值,具有一定的參考價(jià)值,
    2021-06-06
  • C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例

    C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例

    這篇文章主要為大家介紹了C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Qt編寫(xiě)地圖之實(shí)現(xiàn)經(jīng)緯度坐標(biāo)糾偏

    Qt編寫(xiě)地圖之實(shí)現(xiàn)經(jīng)緯度坐標(biāo)糾偏

    地圖應(yīng)用中都涉及到一個(gè)問(wèn)題就是坐標(biāo)糾偏的問(wèn)題,這個(gè)問(wèn)題的是因?yàn)楦鶕?jù)地方規(guī)則保密性要求不允許地圖廠商使用標(biāo)準(zhǔn)的GPS坐標(biāo),而是要用國(guó)家定義的偏移標(biāo)準(zhǔn)。本文將詳細(xì)講解如何在Qt中實(shí)現(xiàn)經(jīng)緯度坐標(biāo)糾偏,需要的可以參考一下
    2022-03-03
  • C語(yǔ)言 scanf的工作原理詳解

    C語(yǔ)言 scanf的工作原理詳解

    這篇文章主要為大家介紹了C語(yǔ)言 scanf的工作原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • c++?error:crosses?initialization?of問(wèn)題解決分析

    c++?error:crosses?initialization?of問(wèn)題解決分析

    這篇文章主要介紹了c++?error:crosses?initialization?ofde?問(wèn)題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C++ 數(shù)據(jù)結(jié)構(gòu)之水洼的數(shù)量算法

    C++ 數(shù)據(jù)結(jié)構(gòu)之水洼的數(shù)量算法

    這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)之水洼的數(shù)量算法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06

最新評(píng)論

酉阳| 邹平县| 建昌县| 连城县| 广宗县| 陆良县| 张掖市| 义马市| 福建省| 西乡县| 聂拉木县| 奉新县| 布拖县| 荃湾区| 蓝山县| 自治县| 淄博市| 琼中| 福建省| 九江市| 海林市| 扶绥县| 塘沽区| 越西县| 福海县| 锡林郭勒盟| 马关县| 济源市| 吴忠市| 理塘县| 崇左市| 玉山县| 勐海县| 太和县| 济南市| 汽车| 临漳县| 水城县| 嘉祥县| 西乌| 外汇|