亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

BUS_ADRERR在德洛彭()

BUS_ADRERR在德洛彭()

墨色風雨 2022-09-28 10:24:45
在?我收到許多來自不同用戶的此類崩潰報告。BUS_ADRERRdlopen()一些注意事項:它發生在不同的庫中(我們的應用程序使用一些)si_addr加載庫中信號點的地址。這真的讓我感到困惑。始終有足夠的系統內存可用。用戶說應用程序將在第二次嘗試時正確啟動。我們的應用程序在加載庫之前從ZIP中提取庫。學習沒有任何興趣。journalctl典型的崩潰報告(由 Java 生成):Stack: [0x00007f284919b000,0x00007f284939c000],  sp=0x00007f2849397258,  free space=2032kNative frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)C  [ld-linux-x86-64.so.2+0x1fa6f]C  [ld-linux-x86-64.so.2+0x8ffc]Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)j  java.lang.ClassLoader$NativeLibrary.load0(Ljava/lang/String;Z)Z+0 [email protected]  java.lang.ClassLoader$NativeLibrary.load()Z+53 [email protected]  java.lang.ClassLoader$NativeLibrary.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)Z+216 [email protected]  java.lang.ClassLoader.loadLibrary0(Ljava/lang/Class;Ljava/io/File;)Z+46 [email protected]  java.lang.ClassLoader.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)V+48 [email protected]  java.lang.Runtime.load0(Ljava/lang/Class;Ljava/lang/String;)V+57 [email protected]  java.lang.System.load(Ljava/lang/String;)V+7 [email protected]<snip>siginfo: si_signo: 7 (SIGBUS), si_code: 2 (BUS_ADRERR), si_addr: 0x00007f27deec7880<snip>7f27dec43000-7f27decc1000 r-xp 00000000 08:08 1054117 <snip>/libswt-gtk-4922r22.so7f27decc1000-7f27deec0000 ---p 0007e000 08:08 1054117 <snip>/libswt-gtk-4922r22.so7f27deec0000-7f27deec8000 rw-p 0007d000 08:08 1054117 <snip>/libswt-gtk-4922r22.so7f27deec8000-7f27deecb000 r-xp 00285000 08:08 1054117 <snip>/libswt-gtk-4922r22.so<snip>Memory: 4k page, physical 3902428k(1540768k free), swap 3998716k(3998716k free)
查看完整描述

1 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

這在 Linux / x86 系統上非常罕見。SIGBUS

發生這種情況的一種情況是當ed文件被截斷時。從人地圖mmap

SIGBUS Attempted access to a portion of the buffer that does not
       correspond to the file (for example, beyond the end of the
       file, including the case where another process has truncated
       the file).

我們的應用程序在加載庫之前從ZIP中提取庫。

一個瘋狂的猜測:你有一個競爭條件,你可以同時從兩個單獨的線程執行這個提取。

第一個線程從ZIP存檔中提取,然后使用它。 ,重新定位它,然后調用庫初始值設定項。libswt-gtk-4922r22.sodlopendlopenmmap

當庫初始值設定項正在運行時,第二個線程決定必須提取庫(這是錯誤),并在將新的(相同的)內容寫入文件之前截斷該文件。一旦截斷完成,第一個線程(仍在運行庫初始值設定項)就會被 終止。.soSIGBUS

通常的解決方法是確保在關鍵部分中完成“檢查文件是否存在,如果不存在則提取”。


查看完整回答
反對 回復 2022-09-28
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號