Tôi thường thấy hữu ích khi đi bộ ngăn xếp khi tôi đang gỡ lỗi chương trình và nhận các biểu tượng cho bất kỳ giá trị con trỏ có kích thước phù hợp nào. Tôi đã bị bệnh làm điều này bằng tay và vì vậy tôi đã cố gắng viết một lệnh mà nó cho tôi. Vấn đề là "biểu tượng thông tin" dường như không thích sử dụng biến tiện lợi làm tham số của nó khi tham số của nó được đặt qua dereference của con trỏ. IE:Nhận thông tin biểu tượng cho giá trị được giữ trong biến thuận tiện GDB
(gdb) info symbol 0xb6ca4d28
[Useful Symbol Information]
(gdb) set $pointer = $esp
(gdb) while (*(int*)$pointer != 0xb6ca4d28)
>set $pointer += 4
>end
(gdb) x/x $pointer
0x6ebee064: 0xb6ca4d28
(gdb) set $dereferencePointer = *(int *)$pointer
(gdb) p/x $dereferencePointer
$103 = 0xb6ca4d28
(gdb) info symbol $dereferencePointer
No symbol matches $dereferencePointer.
(gdb) set $dereferencePointer = 0xb6ca4d28
(gdb) p/x $dereferencePointer
$104 = 0xb6ca4d28
(gdb) info symbol $dereferencePointer
[Useful symbol information]
(gdb)
Tại sao điều này? Đây có phải là một lỗi? Có cách nào khác để làm điều này không?
Cảm ơn!
Luc
PS: Sử dụng vani GDB 7,5
Cập nhật từ danh sách:
này rất có thể là một lỗi.
Có thể danh sách gửi thư liên quan đến 'gdb' có thể là nơi tốt hơn để hỏi. –
Để theo dõi: Không tìm thấy gdb tương đương với các câu hỏi freebsd, tôi đã đăng câu hỏi này lên danh sách gdb chung và chưa nhận được phản hồi. Nếu tôi làm thế, tôi sẽ cập nhật câu hỏi. – shroudednight
Đối với hồ sơ, điều này dường như hoạt động tốt trên 'GNU gdb (GDB) 7.3.50.20111117-cvs-debian' – Jester