記一次詭異的程式執行起始就段錯誤

2021-08-03 04:54:15 字數 531 閱讀 9406

現象:

用交叉編譯器編譯了乙個程式到板子上執行,發現執行時段錯誤,連main函式下第一句log都沒有列印。

也就是詭異還沒進入main函式就已經段錯誤。

分析:程式執行時理論上應該先準備分配記憶體,然後將所需要的庫對映到對應的共享庫區域,因為比較懶,所懶得在板子上搭建gdb開發環境,所以分析大概率為共享庫載入出錯。

解決:其實我的程式編譯時依賴了兩個共享庫,分別為a和b,但是實際上我並沒有呼叫庫a,是庫b依賴了庫a ,但是由於庫b在編譯時沒有加-la,居然能編譯通過,所以就沒有管,而在編譯我的程式時就會發現如果不加上-l庫a就會報庫a函式沒有定義的錯誤,遂我在編譯程式是加上了鏈結庫a,表面上編譯通過,沒有任何問題,但在板子上執行時就會直接段錯誤。

還有一點就是編譯共享庫時不加鏈結依賴的三方庫的話編譯並不會報錯,但是在執行時就會在main函式之前段錯誤,所以在編譯程式時一定要加上依賴的庫的依賴的三方庫。

所以解決方式也一樣,編譯共享庫時如果有依賴,一定要老老實實加上依賴,不然這種奇葩問題,還是搞扯的。

分析不夠深入,期待有大神看到又在指教。

記一次詭異的HTTP響應

問題描述 1.通常我們會想到是不是因為中文?2.通過測試,發現不包含中文的返回最終響應的也是亂碼。3.目前為止排除了編碼問題,檢視閘道器日誌,應用日誌,發現閘道器拿到的資料全部亂碼,但是應用返回確是全部正常,問題查到這兒,基本將問題定位到閘道器和服務之間的互動可能不太正常。通過抓包工具,發現了伺服器...

爛泥 記一次詭異的網路中斷

本文首發於 爛泥行天下 本來這篇文章早就改寫了,但是因為各種原因一直拖著沒有寫。今天剛好周五,把這篇文章寫下。最近一段時間,同事反映每天下午6 00到6 30公司網路會中斷一次,並且一次的終端持續時間為15s左右。而後自動網路恢復正常。既然同事都說了,那咱就找找問題的原因。既然是網路終端,而且是很有...

記一次shm open返回EINVAL的錯誤排查

看redis的bg資料拷貝的時候想起程序的資料是cow的,想寫個程式看看cow的細節,因為要用到訊號量操作sem post和sem wait,訊號量的建立依賴於共享記憶體物件shm open,因為很久沒使用過的這個系統呼叫結果導致出了烏龍,把第乙個引數name給當成了路徑 名字,結果建立的時候返回的...