[英]Interpreting gdb output
我在程序中遇到段錯誤,並試圖通過gdb檢測源。
gdb的O / p如下:
[Switching to Thread 0xb6dffb70 (LWP 6448)]
#0 0x00adc026 in __strlen_sse2_bsf () from /lib/libc.so/6
#1 0x08049e77 in sim_txn (fd=0x804c5c0) at rand_trace0.c:390
在rand_trace0.c:390
我有這條線
system_call_length = strlen("rename(")+strlen(filename1)+strlen(",")+strlen(filename)+strlen(")")+1;
一切似乎都在它之前。 我很茫然。
filename1
和filename
是否都是指向以null結尾的字符串的有效指針? 你可能得到段錯誤的最常見原因是你的指針沒有正確初始化或者其中一個字符串不是以空值終止(可能是因為緩沖區溢出)而導致strlen()
試圖讀取超過分配的內存的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.