Nếu tôi chạy chương trình C/C++ trong gdb (sau khi biên dịch với cờ -g) và tôi kiểm tra địa chỉ của các biến, đối số ... vv, và sau đó chạy nó bên ngoài gdb (sử dụng ./
) địa chỉ giống như những gì tôi thấy trong gdb? Nếu chúng khác nhau thì chúng thường giống nhau hoặc chúng sẽ khác nhau đáng kể?Sự khác biệt giữa địa chỉ gdb và địa chỉ "thực"?
Tôi hỏi điều này vì tôi có một chương trình tràn bộ đệm hoạt động hoàn hảo trong gdb (có và không có điểm ngắt), tuy nhiên khi tôi cố chạy nó bên ngoài gdb, nó không hoạt động.
Về tràn bộ đệm của bạn, tôi khuyên bạn nên thử valgrind. – Troubadour
Buộc chương trình kết xuất lõi bằng "ulimit -c unlimited", sau đó kiểm tra tệp lõi bằng gdb. – strkol