Được rồi; giả sử mã này đang chạy trong chế độ gỡ lỗi -Tại sao tôi không nhận được số dòng từ ngăn xếp ngăn xếp được tạo từ Ngoại lệ?
static StackFrame GetTopFrameWithLineNumber(Exception e)
{
StackTrace trace = new StackTrace(e);
foreach (StackFrame frame in trace.GetFrames())
{
if (frame.GetFileLineNumber() != 0)
{
return frame;
}
}
return null;
}
Tôi luôn luôn trả về giá trị rỗng. Tại sao các khung ngăn xếp không có số dòng khi tôi kiểm tra chuỗi Exception.StackTrace
, nó rõ ràng có chúng cho bất kỳ mã không phải khung không? Có một số vấn đề với việc xây dựng một dấu vết stack từ một ngoại lệ mà tôi không biết?
CHỈNH SỬA CHO CLARITY: Trong trường hợp ngoại lệ được ném, tôi có thể thấy số dòng trong thuộc tính StackTrace. Tôi cho rằng điều đó có nghĩa là tôi có mọi thứ khác mà tôi cần.
Vì tôi có thể thấy các số dòng trong chuỗi exception.stacktrace mặc dù không có nghĩa là tôi có pdb? – Stimul8d
Tôi không nghĩ đây là trường hợp thiếu pdb vì anh ta có thể thấy số dòng. –
ahh, do đó, nó có; gọi tốt. – Stimul8d