連結器與載入器與執行檔格式

對執行檔使用strip指令時會發生的事,下列何者正確?

  1. A機器碼指令被最佳化,執行變快
  2. B執行檔被加密,其他人無法執行
  3. C符號表與除錯資訊被移除,檔案變小,但在除錯器中較難看到函式名稱等
查看答案與解析

正確答案:C. 符號表與除錯資訊被移除,檔案變小,但在除錯器中較難看到函式名稱等

執行檔中有時會包含排列函式與變數名稱的符號表,以及表示與原始碼行對應關係的除錯資訊。這些在執行時並不需要,因此用strip移除後檔案會變小。不過在調查錯誤時會看不到函式名稱與行號,所以有時會另外保存移除前的資訊。動態連結所需的符號則會保留。

  • A. 指令不會改變,所以速度也不會改變。
  • B. 不會加密。
  • C. 正確。刪減執行時不需要的資訊。
練習這個領域 前往領域頁面

連結器與載入器與執行檔格式的其他題目

  1. 關於連結器對弱符號(weak symbol)的處理,下列何者正確?
  2. C++編譯器在函式名稱上附加參數型別等資訊以產生符號名稱的「名稱修飾(name mangling)」,其主要目的為下列何者?
  3. Linux的dlopen函式(相當於Windows的LoadLibrary)的用途,下列何者最為適切?
  4. 當100個行程使用相同的共用函式庫時,關於實體記憶體的使用方式,下列何者正確?
  5. 對目的檔進行反組譯時,發現呼叫外部函式printf之指令的跳躍目標是0這樣的暫時值。這個值會在何時被正確填入?

這個領域的比較