2012-06-03 28 views
5

Tôi muốn chỉ tách riêng một dòng mã cụ thể trong gdb; để làm điều này, tôi cần địa chỉ bộ nhớ của dòng đã nói. Làm thế nào tôi có thể lấy địa chỉ của một dòng mã cụ thể trong gdb? Hoặc tốt hơn, là có một lệnh trong gdb để tháo rời bởi số dòng?gdb tháo rời một dòng

Trả lời

3

Đặt dấu ngắt trên dòng bạn muốn tháo rời và sau đó, bạn có thể thử lấy hướng dẫn hiện tại bằng.

disp/i $pc 

Điều này luôn hoạt động đối với tôi, khi tôi gỡ lỗi các tệp nhị phân không có thông tin gỡ lỗi. Ngoài ra, bạn có thể chỉ cần lấy pc hiện tại theo print $pc hoặc info registers hoặc chỉ cần sử dụng hướng dẫn x. ví dụ .:

x/10i address //displays the first 10 instructions in assembly starting from address 

hoặc

x/10i register //displays the first 10 instructions starting from address stored in register 
2

Bạn có thể sử dụng: set disassemble-next-line on để diassemble bởi số dòng. Sau đó, sử dụng bất kỳ kỹ thuật nào bạn muốn đặt điểm ngắt tại dòng cụ thể mà bạn muốn xem.

Các vấn đề liên quan