Mục tiêu của tôi là:
- Đưa ra một chuỗi bị treo trong chương trình Windows 32 hoặc 64 bit do Delphi biên dịch, để đi bộ (có thể làm được)
- Đưa ra các mục ngăn xếp, để liệt kê các biến cục bộ trong mỗi phương thức và giá trị của chúng. Đó là, ít nhất, hãy tìm địa chỉ và kiểu của chúng (số nguyên 32/64 / có dấu / không dấu, chuỗi, float, bản ghi, lớp ...) kết hợp chúng có thể được sử dụng để tìm giá trị của chúng.
Câu hỏi đầu tiên là tốt và câu hỏi thứ hai là về câu hỏi này. Ở mức cao, làm cách nào để liệt kê các biến cục bộ cho một mục ngăn xếp trong Delphi?
Ở cấp độ thấp, đây là những gì tôi đang điều tra:
RTTI: không liệt kê loại thông tin này về các phương pháp. Đây không phải là điều mà tôi thực sự từng nghĩ là một lựa chọn thực tế, nhưng dù sao cũng liệt kê ở đây.
Thông tin gỡ lỗi: Đang tải thông tin gỡ lỗi được tạo cho bản dựng gỡ lỗi.
- Tệp bản đồ: ngay cả tệp bản đồ chi tiết (tệp định dạng văn bản! Hãy mở một tệp và xem) không chứa thông tin biến địa phương. Về cơ bản, nó là một danh sách các địa chỉ và số dòng của tệp nguồn. Tuyệt vời cho địa chỉ để tệp & tương quan dòng, ví dụ: các chấm màu xanh lam trong rãnh nước; không tuyệt vời để biết thêm thông tin chi tiết
- Thông tin gỡ lỗi từ xa (tệp RSM) - không có thông tin nào về nội dung hoặc định dạng của nó.
- Tệp TD32 / TDS: dòng nghiên cứu hiện tại của tôi. Chúng chứa các ký hiệu toàn cầu và địa phương trong số rất nhiều thông tin khác.
Các vấn đề tôi gặp phải ở đây là:
- Không có tài liệu về định dạng tệp TD32 (mà tôi có thể tìm thấy.)
- Hầu hết kiến thức của tôi về chúng đến từ mã Jedi JCL sử dụng chúng (JclTD32.pas) và tôi không chắc cách sử dụng mã đó hoặc liệu các cấu trúc có đủ rộng để hiển thị các vars cục bộ hay không. Tôi khá chắc chắn rằng nó sẽ xử lý các ký hiệu toàn cầu, nhưng tôi rất không chắc chắn về địa phương. Có rất nhiều hằng số được định nghĩa và không có tài liệu cho định dạng, để đọc ý nghĩa của chúng, tôi chỉ đoán. Tuy nhiên, những hằng số đó và tên của chúng phải đến từ đâu đó.
- Nguồn tôi có thể tìm bằng cách sử dụng thông tin TDS không tải hoặc xử lý các ký hiệu cục bộ.
Nếu đây là cách tiếp cận đúng, thì câu hỏi này sẽ trở thành 'Có tài liệu cho định dạng tệp TDS / TD32 không và có bất kỳ mẫu mã nào tải các biến cục bộ không?'
Một mẫu mã không cần thiết nhưng có thể rất hữu ích, ngay cả khi nó rất nhỏ.