2012-07-20 36 views
5

Ive chạy vào một lỗi thú vị (khá khó chịu) trong khi sử dụng Visual Studio để gỡ lỗi hỗn hợp WPF/CLR/Không được quản lý bản gốc C++ dự án, lỗi này chỉ xảy ra trong Windows XP. Dường như tôi có một lỗi tham nhũng xảy ra trong chương trình, phạm vi của nó quá lớn để đăng ở đây. Vấn đề mà tôi gặp phải là khi sự cố xảy ra trong chương trình, nó chỉ đơn giản là thoát mà không có trình gỡ lỗi VS cố gắng xác định vị trí một ngoại lệ, tôi giả sử vì không có gì được ném. Mã thoát chương trình thực sự là thông tin duy nhất tôi phải tiếp tục, và nó chỉ là giá trị int tối thiểu.Chương trình đã thoát với mã -2147483645

Có ai gặp phải điều này và có thể chỉ cho tôi đúng hướng theo ý nghĩa của nó không?

EDIT:

Tiếp tục để điều tra vấn đề này, Ive phát hiện ra rằng đôi khi tôi có thể nhận được một chồng dấu vết và một ngoại lệ như trái ngược với một lối ra chương trình thẳng. Các dấu vết mang lại cho tôi một phân bổ vector (đẩy). Trong trường hợp chương trình vừa thoát, đây vẫn là dòng cuối cùng được thực thi. Tôi giả sử rằng tôi có bộ nhớ bị hỏng ở đâu đó, mặc dù tôi đã hy vọng rằng thực tế là điều này thường biểu hiện chính nó như là một bãi chứa chương trình và không phải là một ngoại lệ sẽ có thể giúp chỉ cho tôi đi đúng hướng.

+0

là có một lệnh thoát() hoặc một cú ném từ một descturcor cả hai điều này tôi đã thấy gây ra hành vi được chỉ định. – rerun

+5

mã thoát có thể có ý nghĩa hơn khi được hiểu là HRESULT ==> 0x80000003 – jglouie

+0

@rerun, bạn có thể gặp phải thứ gì đó với cú ném từ một destructor, Ill nhìn vào nó. – jimmyjambles

Trả lời

6
// 
// MessageId: STATUS_BREAKPOINT 
// 
// MessageText: 
// 
// {EXCEPTION} 
// Breakpoint 
// A breakpoint has been reached. 
// 
#define STATUS_BREAKPOINT    ((NTSTATUS)0x80000003L) 

Chương trình hạ cánh trên hướng dẫn INT3 và kích hoạt điểm ngắt. Nhưng không có trình gỡ rối nào có mặt để chấm dứt chương trình. Nó có thể là một __debugbreak đi lạc() bạn để lại trong mã của bạn, nó có thể được kích hoạt bởi một bước nhảy hoang dã khi trạng thái chương trình bị hỏng.

Bạn cần gỡ lỗi. Nếu bạn không thể dễ dàng repro nó trên máy dev của bạn thì bạn sẽ cần một minidump từ máy không.

+0

Cảm ơn câu trả lời của bạn, tôi đã đi xa như cài đặt Visual Studio trên máy ảo Windows XP. Biên dịch lại và chạy cục bộ với trình gỡ lỗi, chương trình vẫn chỉ thoát. Dòng cuối cùng được gọi là phân bổ. – jimmyjambles

+0

Tôi không biết, đó không phải là hành vi điển hình đối với XP. Âm thanh như tham nhũng heap của khóa học. Gỡ lỗi + Trường hợp ngoại lệ, đánh dấu vào hộp Đã phát. –

+1

đã truy cập một byte qua một mảng trên ràng buộc, tôi đoán những gì thông qua tôi tắt là thiếu bất cứ điều gì ném. Cảm ơn một lần nữa – jimmyjambles

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