3
我想了解C的memcpy函數的內部工作原理。有沒有辦法讓我使用gdb進入函數?用gdb進入GNU函數
我想了解C的memcpy函數的內部工作原理。有沒有辦法讓我使用gdb進入函數?用gdb進入GNU函數
當然。當您撥打memcpy
時,請使用si
(步驟說明)進入組件。
儘管如此,如果您有libc的調試版本和glibc源代碼,您將只能獲得源代碼。
如果您只想看到實施,請查看memcpy-ssse3.S或memcpy.S。
謝謝nneonneo。這解決了我的問題。 – Clocks 2013-03-01 01:03:31
沒有人說編譯器不能在線擴展函數,或者用別的東西代替(比如GCC用'puts(「Some constant string」);'替換'printf(「Some constant string」);') – vonbrand 2013-03-01 16:57:05
@vonbrand :是的,但是這種情況只發生在極少數情況下使用memcpy的情況下(實際上只有當在可證明的邊界上覆制恆定大小的小塊數據時)。 GCC將*調用插入'memcpy'比較常見,例如,當做結構分配。 (nitpick:如果常量字符串以\ n結尾,則只使用'puts')。 – nneonneo 2013-03-01 18:49:22