Giả sử tôi đã đính kèm gdb vào một quy trình và trong bố cục bộ nhớ của nó có một tệp và số dòng mà tôi muốn địa chỉ bộ nhớ của. Làm thế nào tôi có thể lấy địa chỉ bộ nhớ của dòng n trong tập tin x? Đây là trên Linux x86.gdb tìm địa chỉ bộ nhớ của số dòng
6
A
Trả lời
13
(gdb) info line test.c:56
Line 56 of "test.c" starts at address 0x4005ae <main+37>
and ends at 0x4005ba <main+49>.
bổ sung với python bạn có thể sử dụng thuộc tính 'cuối cùng' từ Symbol-Tables-In-Python này hiện đang đòi hỏi một phiên bản rất gần đây của gdb từ cvs, nhưng tôi tưởng tượng sẽ có sẵn sàng nói chung trong 7,5
(gdb) py x = gdb.find_pc_line(gdb.decode_line("test.c:56")[1][0].pc); gdb.execute("p/x " + str(x.pc)); gdb.execute("p/x " + str(x.last))
$15 = 0x4005ae
$16 = 0x4005b9
+0
cảm ơn sự giúp đỡ. –
+0
dòng thông tin! Đó là những gì chúng tôi cần cho câu hỏi khác. –
Nhiều hoặc ít hơn một bản sao của [gdb tháo rời theo số dòng] (http://stackoverflow.com/questions/11285932/gdb-disassemble-by-line-number) - câu trả lời cho câu hỏi đó là một câu trả lời hoàn hảo tốt cho điều này một là tốt. – duskwuff