博客 / 列表

viyon - gdb調試單獨的debuginfo文件

gdb調試單獨的debug文件 2023.11.26 背景 Debug和Release區別 實際上,Debug 和 Release 並沒有本質的界限,人為的區別,沒有特殊的規定。他們只是一組編譯選項的集合,編譯器只是按照預定的選項行動。事實上,我們甚至可以修改這些選項,從而得到優化過的調試版本或是帶跟蹤語句的發佈版本。約定俗成的區別是: Debug通常稱為調試版本,它包含調試信息,並且不作任何優化

gdb , Linux , 調試技巧 , 調試 , 調試工具

viyon - 記錄一次glibc版本過低導致的程序無法正常加載的問題

記錄一次glibc版本過低導致的程序無法正常加載的問題 2023.11.27 問題現象 一個程序使用C語言編寫的,但由於某些原因,需要通過dlopen的方式調用go語言生成的so,在其它設備上可以正常運行,但在一個arm環境上運行的時候,發現無法正常運行,看到的現象是程序無任何響應,類似直接卡死了。私用gdb查看當前進程,線程信息及調用信息如下: $3 = (void *) 0x7f98c3100

glibc , 調試 , dlopen

viyon - runpath和rpath的區別

RPATH和RUN-PATH 背景 需有簡單的linux編程知識,瞭解動態庫是什麼。瞭解LD_LIBRARY_PATH的作用。 RPATH是什麼? 什麼是運行時(run-time)?運行時就是程序運行的時候(一句廢話)。我們知道,在程序運行的時候,會依賴一些動態庫,只有所依賴的庫文件在運行的機器上存在,才能運行程序。問題是如何找到這些庫?這些庫可能在不同的目錄中,每個人的操作系統中的目錄結構可能都

程序 , Linux

viyon - Fedora38安裝VirtualBox

Fedora38安裝VirtualBox 2023.07.08 背景 我的電腦使用的Fedora38系統,但由於某些原因,需要使用其它操作系統,通過虛擬機安裝其它系統是一個最好的選擇,在linux系統中,VirtualBox是比較知名的虛擬機軟件,但VirtualBox對Fedora系統的支持目前只支持到Fedora36,而現在Fedora早已經發布了Fedora38版本,我的電腦使用的即是Fed

fedora , virtualbox

viyon - sed中的轉義字符

SED命令中的特殊字符 SED分割符號 默認情況下,sed的分割符是反斜槓(/),如's/abc/xyz/g',會把abc替換為xyz,如下所示: echo "this is abc" | sed 's/abc/xyz/g' this is xyz 如果輸入源中有分割符,則我們需要對分割符進行轉義,如下所示: echo "this is /a/b/c" | sed 's/\/a\/b\/c/\/x

sed , Linux