2014-11-26 12 views
5

Trên Windows7, tôi có một tập lệnh python sử dụng Windows DLL, sử dụng .NET Language Language Runtime (CLR). Một lỗi xảy ra bên trong một trong những DLL được sử dụng, nhưng trình gỡ lỗi Python chuẩn chỉ gỡ lỗi ở mức mã Python (và không phải là DLL).Làm thế nào để gỡ lỗi một DLL Windows được sử dụng bên trong Python?

Làm cách nào để gỡ lỗi những gì đang xảy ra bên trong (các) DLL?

+0

Bạn đang sử dụng Visual Studio hay bạn có Visual Studio có sẵn? – PaulMcKenzie

+0

Không - bạn có đề nghị cài đặt không? Sau đó tôi có thể chạy mã của tôi trong Visual Studio để gỡ lỗi mã không? – Alex

+2

Cài đặt Visual Studio. Một khi bạn làm điều đó, sau đó bạn có thể gỡ lỗi DLL một cách dễ dàng (giả sử bạn có mã nguồn, nếu không, sau đó bạn phải gỡ lỗi ngôn ngữ lắp ráp). – PaulMcKenzie

Trả lời

6

Nếu bạn có Microsoft Visual Studio,

1) mở dự án Visual Studio mà DLL của bạn là một phần của (hoặc tạo dự án mới).

2) Nếu bạn đã thiết lập DLL của bạn để gỡ lỗi (bạn đã xây dựng nó với thông tin gỡ lỗi, và nó sẽ là chương trình python của bạn sẽ sử dụng), bạn có thể thiết lập các điểm ngắt trong mã DLL.

3) Bắt đầu chương trình bạn muốn gỡ lỗi như bình thường.

4) Quay lại IDE Visual Studio và chuyển đến menu Debug. Chọn tùy chọn Attach to Process. Sau đó bạn sẽ nhận được một danh sách tất cả các tiến trình đang chạy.

5) Chọn quy trình bạn muốn gỡ lỗi, đây sẽ là chương trình python của bạn hoặc thời gian chạy đang chạy chương trình của bạn.

6) Ngồi lại và đợi một trong các điểm ngắt của bạn bị trúng, hoặc bạn có thể thử Break All từ menu Gỡ lỗi để tạm thời tạm dừng chương trình.

Đây là cách tổng quát để bắt đầu gỡ lỗi không chỉ các chương trình python, mà là chương trình mà bạn cần gỡ lỗi một DLL đang được chương trình sử dụng.

Lưu ý rằng lời khuyên ở trên hoạt động tốt nhất nếu bạn đã tự xây dựng DLL với thông tin gỡ lỗi và đang được ứng dụng python của bạn sử dụng. Nếu nó là một bên thứ ba DLL nơi bạn không có mã nguồn, bạn vẫn có thể gỡ lỗi từ Visual Studio, nhưng sẽ cần phải biết ngôn ngữ lắp ráp (vì mã nguồn thường không có sẵn).

+0

Cũng nên nhớ (trong năm 2017 ít nhất) để chọn Native từ trình đơn thả xuống nếu gỡ lỗi của bạn nói một DLL C++ chuẩn vì nó mặc định là "python". Nó dừng lại ở điểm ngắt và mọi thứ. Khéo léo! Tôi không có ý tưởng bạn có thể làm điều này. –

Các vấn đề liên quan