Tôi đang tái cấu trúc một số mã trong C++ và tôi muốn ngừng sử dụng một số phương pháp cũ. Phương pháp hiện tại của tôi để tìm tất cả các phương pháp trông giống như sau:Làm thế nào để Tìm tất cả người gọi của một hàm trong C++?
- Nhận xét phương thức gốc trong tệp nguồn mà tôi đang làm việc.
- Cố gắng biên dịch mã.
- Nếu tìm thấy lỗi trình biên dịch, sau đó ghi chú nhận xét ra khỏi cuộc gọi và cố gắng biên dịch lại.
- Khi biên dịch đã hoàn tất thành công, tôi đã tìm thấy tất cả các cuộc gọi.
Điều này hoàn toàn không được. Tôi cũng đã cố gắng tìm nguồn cho tên gọi hàm, nhưng đôi khi tôi gặp phải các vấn đề với các hàm có cùng tên với các đối số khác nhau, do đó trình biên dịch của tôi làm cho trình biên dịch C++ giải quyết các tên cho tôi. Tôi đã tìm thấy this question cho C#, nhưng cơ sở mã của tôi hoàn toàn được triển khai trong C++.
Có cách nào tốt hơn để tìm tất cả người gọi phương thức hoặc hàm lớp trong C++ không? Tôi đang sử dụng GCC trên các hệ thống Unix, nhưng các giải pháp đa nền tảng sẽ là bậc nhất.
Tôi rất muốn nghe một giải pháp tốt, nhưng có vẻ như với tôi bạn phải sao chép toàn bộ giao diện người dùng. Đó là khá nhiều những gì nó sẽ làm để xây dựng bảng biểu tượng. –
Thử [CodeQuery] (https://github.com/ruben2020/codequery). Nó kết hợp tốt nhất của cscope và ctags, để tạo ra thông tin mã nguồn tốt hơn của C++. Disclaimer: Đó là dự án nguồn mở của tôi. – ruben2020