Tôi đã viết một DLL không Qt C được biên dịch với mingw bằng cách sử dụng QtCreator IDE.Làm thế nào để gỡ lỗi một dự án DLL bằng QtCreator?
Khi tôi tiêm DLL vào một tiến trình, DLL làm cho quá trình đó gặp sự cố tại một dòng mã nhất định. Tôi thấy dòng này là thủ phạm thông qua việc sử dụng OutputDebugString
. Tôi biết làm thế nào để sửa chữa dòng và DLL hoạt động khi dòng đó được sửa đổi. Tuy nhiên, với mục đích học cách sử dụng trình gỡ lỗi, tôi đã để lại dòng bị hỏng và chưa sửa đổi.
Tôi làm cách nào để sử dụng trình gỡ lỗi QtCreator để tìm cùng một dòng chính xác đang gây ra sự cố? Khi QtCreator được thiết lập để biên dịch trong chế độ gỡ lỗi, nhấn F5 kết quả ở cửa sổ dưới đây vì không có EXE:
Viết một chương trình nhỏ liên kết với thư viện để tái tạo sự cố và chạy nó trong trình gỡ lỗi. Hoặc bạn có ý nghĩa gì với "tiêm"? –
@FrankOsterfeld: http://en.wikipedia.org/wiki/DLL_injection Đây là một tệp DLL cấp thấp chỉnh sửa bộ nhớ của nạn nhân procces. Tôi không thể liên kết với thư viện vì cách thức hoạt động của DLL injection. Tại sao tôi chỉnh sửa bộ nhớ của một quá trình khác? Tôi đang chỉnh sửa bộ nhớ của một dự án mã nguồn mở được gọi là Assault Cube. Mục đích là để khám phá và tìm hiểu thêm về cách mã C được dịch sang ASM và cách máy tính hoạt động ở cấp thấp hơn. – user2924308
Vâng, bạn có thể chỉ cần gõ tên thực thi, sử dụng dll và đối số của bạn để nó trong cửa sổ ở trên và QtCreator sẽ làm phần còn lại cho bạn. – Lol4t0