0
我使用strace的找到我的程序可能出現的錯誤,我有這樣的輸出:strace的:打印路徑,而不是地址
open(0x7765533c, O_RDONLY) = -1 EACCES (Permission denied)
如何獲得存儲的值在這個地址或者如何告訴strace的到打印路徑參數?
我使用strace的找到我的程序可能出現的錯誤,我有這樣的輸出:strace的:打印路徑,而不是地址
open(0x7765533c, O_RDONLY) = -1 EACCES (Permission denied)
如何獲得存儲的值在這個地址或者如何告訴strace的到打印路徑參數?
strace顯示指針值,當它不能顯示一個字符串時,因爲指針沒有指向有效的內存位置。在這種情況下,指針的字節看起來像ASCII一樣。
77 65 73 3c
w e s <
你莫名其妙地提取從您的字符串4個字節和曲解他們作爲一個指針。
至少大部分是它的樣子。有一件事我無法解釋,這就是你如何得到EACCES而不是EFAULT。
strace是否總是在您的系統上執行此操作,或者只是爲您的程序執行此操作?因爲每當我使用它時,它總是顯示「open」的第一個參數爲一個字符串。 –
不,對於其他調用(如動態鏈接),strace顯示字符串。此輸出中的開放跟蹤來自我正在使用的庫,而不是來自我自己的代碼。 –