[問題] x64 環境下的行程虛擬記憶體位置
肥宅我最近試著寫些 debugger 的程式
但遇到些問題, 網路上常說程式的起始點位置是 0x8048xxx
但我利用 gdb 或者是 ptrace 會發現是個更大的數字 (e.g. 0x7f1baa1e8090)
Q1: 是因為處理器的差距嗎?
考量當時的環境主流應該是 x86 32 bits的版本 (我是 64 bits 的版本)
Q2: 我該如何得知子行程的 .text 或者 .plt 的位置?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.222.46 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1562284094.A.F32.html
→
07/05 09:27,
6年前
, 1F
07/05 09:27, 1F
推
07/05 10:01,
6年前
, 2F
07/05 10:01, 2F
推
07/05 10:03,
6年前
, 3F
07/05 10:03, 3F
→
07/05 10:26,
6年前
, 4F
07/05 10:26, 4F
→
07/05 10:52,
6年前
, 5F
07/05 10:52, 5F
→
07/05 14:37,
6年前
, 6F
07/05 14:37, 6F
→
07/05 14:38,
6年前
, 7F
07/05 14:38, 7F
→
07/05 15:07,
6年前
, 8F
07/05 15:07, 8F
→
07/05 15:07,
6年前
, 9F
07/05 15:07, 9F
推
07/05 15:16,
6年前
, 10F
07/05 15:16, 10F
抱歉剛剛才下班 我大致了解了數字會那麼大的原因
那我有辦法利用 pid 去得到我的 Q2 嗎?
我是有查到 /proc/$pid/maps 不過想問的是C語言有提供相關的API嗎?
※ 編輯: flypaper (111.251.222.46 臺灣), 07/05/2019 20:53:11
→
07/05 21:18,
6年前
, 11F
07/05 21:18, 11F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
33
68