Tôi đang tìm kiếm một tiện ích dòng lệnh trên * nix, mà có thể đổ tên của tất cả các chức năng, lớp học vv định nghĩa trong một tập tin (C/C++/Java)công cụ linux để liệt kê tất cả các chức năng trong tệp nguồn?
Trả lời
ctags có thể cung cấp cho bạn đó (và nhiều hơn). Nó được bao gồm với hầu hết các bản phân phối Linux ...
http://ctags.sourceforge.net/whatis.html
tôi biết về ctags, nhưng nó tạo ra các tệp thẻ của nó, mà sau đó là cần thiết được nhập vào một trình soạn thảo ví dụ vim. Tôi đã yêu cầu một tiện ích đơn giản, chỉ cần in các tên hàm trên bàn điều khiển, nếu ctags nào mà tôi không chắc chắn – Anonymous
thì bạn muốn 'ctags -x', in ra một bản tóm tắt có thể đọc được của con người. – SingleNegationElimination
Ngoài ra 'ctags -f -' in đầu ra thành stdout và không phải là tệp thẻ. Sau đó bạn có thể sử dụng 'awk' hoặc một cái gì đó tương tự ... –
Nó không phải là rõ ràng ngôn ngữ mà bạn tham khảo: nếu:
- tuân tập tin elf sau đó bạn có tiện ích readelf cung cấp mà bạn biên soạn tập tin với debug thông tin "-g"
Điều này sẽ không hoạt động đối với C++, do mang tên ... –
@Gilad Naor - Nhưng bạn có thể sử dụng C++ filt để loại bỏ chúng –
Không chắc chắn nếu nó sẽ hữu ích cho mục đích chính xác của bạn, nhưng hãy nhìn vào GCC-XML
Bạn có thể thử Doxygen http://www.stack.nl/~dimitri/doxygen/
Bạn cũng có thể muốn xem cscope
tương tự như ctags được đề xuất trong câu trả lời được chấp nhận. Nó tạo ra cơ sở dữ liệu biểu tượng của riêng nó. Nó cung cấp một giao diện đẹp cho bạn, cho phép tìm kiếm một biểu tượng/bao gồm/tệp/khai báo đã cho trong dự án của bạn.
Loại tệp, ngôn ngữ nào, bạn có nghĩa là tệp tuân thủ elf? – Gadolin
Tệp nguồn là ngôn ngữ nào? –
Đối với java viết một mã dựa trên sự phản ánh để làm điều đó. Vui lòng kiểm tra xem C++ filt có thực hiện một số điều hữu ích cho bạn không - http://sourceware.org/binutils/docs-2.16/binutils/c_002b_002bfilt.html – Jayan