Khi tôi dừng lại ở điểm ngắt trong gdb, nó chỉ hiển thị filename.cpp. Làm thế nào tôi có thể xem tên đường dẫn đầy đủ của tệp này?Cách xem đường dẫn đầy đủ của một tệp trong GDB?
15
A
Trả lời
18
Sử dụng lệnh info source
để nhận thông tin cho khung ngăn xếp hiện tại.
Dưới đây là một ví dụ về sản lượng của nó:
(gdb) info source Current source file is /build/gtk+2.0-LJ3oCC/gtk+2.0-2.24.30/modules/input/gtkimcontextxim.c Located in /home/sashoalm/Desktop/compile/gtk+2.0-2.24.30/modules/input/gtkimcontextxim.c Contains 1870 lines. Source language is c. Producer is GNU C11 5.3.1 20160225 -mtune=generic -march=i686 -g -g -O2 -O2 -fstack-protector-strong -fPIC -fstack-protector-strong. Compiled with DWARF 2 debugging format. Does not include preprocessor macro info.
1
Trong Python scripting
Để tìm hiểu Python scripting, hoặc nếu bạn muốn xem chỉ đường dẫn đầy đủ và không có gì khác:
class Curpath(gdb.Command):
"""
Print absolute path of the current file.
"""
def __init__(self):
super().__init__('curpath', gdb.COMMAND_FILES)
def invoke(self, argument, from_tty):
gdb.write(gdb.selected_frame().find_sal().symtab.fullname() + os.linesep)
Curpath()
Cách sử dụng:
curpath
0
Câu trả lời hay từ Ciro Santill. Tuy nhiên, kịch bản lệnh cần một sửa đổi nhỏ để làm việc với gdb 8.0.1 của tôi.
Tôi cũng đã thay đổi nó để sao chép văn bản vào khay nhớ tạm để tôi có thể sử dụng nó ngay lập tức. Nó hoạt động độc đáo với plugin file_line.vim. Đây là một ví dụ về nội dung clipboard sản xuất bởi các kịch bản:
/home/ops1/projects/test01/main.cpp:5
Kịch bản là dưới đây:
import pyperclip
class Clippath (gdb.Command):
"""print absolute path"""
def __init__(self):
super(Clippath, self).__init__("clippath", gdb.COMMAND_USER)
def invoke(self, arg, from_tty):
symtabline = gdb.selected_frame().find_sal()
pyperclip.copy(symtabline.symtab.fullname() + ":" + str(symtabline.line))
Clippath()
Dưới đây là các bước để làm cho nó tất cả các công việc:
- Install pyperclip thư viện python sudo zypper trong python3-pyperclip
- Lưu tập lệnh ở trên vào tệp, giả sử file-path.py và sao chép tệp đó vào ~/.gdb
- Cập nhật ~/.gdbinit với việc thêm những dòng sau: nguồn ~/.gdb/file-path.py
- Bây giờ bạn có thể sao chép các đường dẫn và đường vào clipboard với
clippath
trong gdb
Và đọc thêm về API Python GDB - link
Các vấn đề liên quan
- 1. Nhận đường dẫn đầy đủ của các tệp trong PowerShell
- 2. Đường dẫn đầy đủ của tệp Xcode 4
- 3. Cách lấy đường dẫn đầy đủ của StreamWriter
- 4. Tìm tên tệp từ đường dẫn tệp đầy đủ
- 5. Nhận đường dẫn tệp đầy đủ trong java
- 6. Liệt kê tất cả các tệp trong một thư mục - đường dẫn đầy đủ của tệp
- 7. Đường dẫn đầy đủ từ đầu vào tệp bằng jQuery
- 8. Cách tìm đường dẫn đầy đủ của tệp .pst của Outlook?
- 9. Hiển thị đường dẫn đầy đủ của tên tệp trong các tab ~ Netbeans 6.8
- 10. Đường dẫn đầy đủ của cá tương tác Shell
- 11. Tìm đường dẫn đầy đủ của trình thông dịch Python?
- 12. xây dựng tên đường dẫn đầy đủ trong python,
- 13. Làm cách nào để lấy thư mục từ đường dẫn đầy đủ của tệp?
- 14. Tìm phần thư mục (trừ tên tệp) của đường dẫn đầy đủ trong truy cập 97
- 15. Mở tệp theo đường dẫn đầy đủ của nó trong C++
- 16. Cách lấy đường dẫn đầy đủ của thư mục tệp hiện tại bằng Python?
- 17. Làm cách nào để tách tên tệp khỏi một đường dẫn đầy đủ theo lô?
- 18. Cách nén thư mục không có đường dẫn đầy đủ
- 19. Cách đúng để tìm tệp theo "đường dẫn đầy đủ" trong API Google Drive v2
- 20. Cách lặp qua các tệp (đường dẫn đầy đủ) trong PowerShell
- 21. Xem đường dẫn chuyển hướng đầy đủ và mã trạng thái HTTP trong Chrome
- 22. Làm cách nào để chuyển đổi đường dẫn đầy đủ sang đường dẫn tương đối bằng cách sử dụng perl?
- 23. ASP.NET MVC - làm cách nào để có được đường dẫn đầy đủ đến một hành động
- 24. Làm cách nào để tách đường dẫn đầy đủ thành thư mục và tên tệp?
- 25. Cách lấy một phần từ đường dẫn đầy đủ trong C#?
- 26. Làm cách nào để lấy tên tệp từ đường dẫn đầy đủ bằng PHP?
- 27. Cách lấy thư mục đường dẫn đầy đủ từ Trình chọn tệp
- 28. lấy tên đầy đủ của một assembly
- 29. Lưu tệp XML trong PowerShell yêu cầu đường dẫn đầy đủ. Tại sao?
- 30. thông tin chi tiết nguồn không hiển thị đường dẫn đầy đủ của tệp trong thanh tiêu đề
Lệnh này hiển thị thông tin về điểm ngắt * hiện tại * và đôi khi phải mất một thời gian dài để đạt điểm ngắt trên một hàm cụ thể. Trong trường hợp này có thể hữu ích khi bắt đầu nhảy đến hàm đó bằng 'jump'. –
mMontu