2010-10-29 49 views
8

Tôi đang gặp sự cố khi gỡ lỗi bất kỳ trang web ASP Classic nào trên máy trạm của mình bằng bất kỳ môi trường gỡ lỗi MS nào có sẵn cho tôi. Tôi đang sử dụng Win XP SP3, sử dụng IIS 5.1 dựng sẵn.Trình gỡ rối trên dòng sai khi gỡ lỗi Classic Asp

Bắt đầu một vài tuần trước và xảy ra trên nhiều dự án. Một cái gì đó thay đổi rõ ràng trong môi trường của tôi, bởi vì nó đã làm việc tốt trong quá khứ, ngay cả trong IDE gần đây miễn là tôi đính kèm để xử lý. Sau đó, nó đã phá vỡ như mô tả dưới đây. Tôi đã từ bỏ nó, nhưng tôi bắt đầu làm việc trên một dự án mới gần đây, cố gắng để gỡ lỗi và nó đã làm việc! Hôm nay, mặc dù, nó trở lại hành vi bị hỏng tương tự:

Khi tôi cố gắng đặt điểm ngắt, IDE thực sự đặt điểm một vài dòng ở trên hoặc bên dưới dòng tôi đã nhấp. Tôi đang cố gắng thiết lập điểm ngắt trên các dòng hoàn toàn là mã phía máy chủ, vì vậy nó không phải vì nó bỏ qua trước hoặc sau HTML với các mã cố định mã nhúng. Thỉnh thoảng nó sẽ không đặt điểm ngắt, cho tôi một biểu tượng điểm ngắt rỗng và trình bày một lỗi cho biết không có mã thực thi trên dòng.

Khi tôi đính kèm với quá trình IIS (inetinfo.dll, khi tôi đang chạy ở chế độ cách ly thấp), điểm ngắt có thể không bị nhấn. Nếu có, và tôi bắt đầu một bước, dòng được chọn nhảy xung quanh, và không hạ cánh trên mọi đường liên tục trong nguồn, cũng không theo các cấu trúc điều khiển như mong đợi. Các biến đã xem không được cập nhật như mong đợi. Nó rõ ràng nhìn thấy mã khác với tôi làm cho cùng một số dòng.

Các hành vi tương tự sẽ xảy ra cho dù tôi tải trang trong trình duyệt và

  • Đính kèm để quá trình từ VS2010, thiết lập một breakpoint và làm mới trang, hoặc
  • thiết lập các breakpoint, gắn với quá trình và làm mới hoặc
  • thêm tuyên bố 'dừng' trong nguồn của tôi và làm mới trang. Trong trường hợp đó, tôi đã trình bày một danh sách các trình gỡ rối có sẵn và mỗi một trong số chúng thực hiện chính xác điều tương tự - chúng bỏ qua các dòng mã SAME và làm theo các đường dẫn "không đúng". Tôi đã thử VS2010, 2008, 2005, 2003 và Microsoft Script Debugger.

Dường như mã nguồn không đồng bộ với những gì trình gỡ lỗi đang thực hiện. Tôi đã chắc chắn rằng 'Yêu cầu tệp nguồn khớp chính xác với phiên bản gốc' được đặt trong VS> Công cụ> Tùy chọn> Gỡ lỗi> Chung

Và, tất nhiên, đây là các trang ASP Classic - không có mã được biên dịch, vì vậy nguồn tôi thấy trong IDE nên giống như những gì mà trình gỡ lỗi thực hiện. Nó không cụ thể cho một dự án - nó đang diễn ra trên ít nhất hai dự án hoàn toàn riêng biệt vào lúc này. Và, nó đang xảy ra trên nhiều máy - tôi đã triển khai dự án của mình đến một máy chủ thử nghiệm và cố gắng gỡ lỗi ở đó và có hành vi tương tự.

Tôi tìm thấy một số thông tin về vấn đề tương tự nghe có vẻ liên quan tới file UTF-mã hóa có chứa các ký tự không ANSI (bạn đã biết, những người bạn sử dụng Unicode để hỗ trợ!) here, herehere, nhưng tôi đã đi qua nguồn của tôi và không thể tìm thấy bất kỳ tệp nào như vậy.

Bất kỳ ý tưởng nào? Cảm ơn!

Trả lời

8

Lần duy nhất tôi từng thấy đây là khi dự án được thiết lập để xây dựng trong chế độ Phát hành thay vì chế độ Gỡ lỗi.

Việc kiểm tra điều này sẽ dễ dàng như thế nào tùy thuộc vào thiết lập IDE của bạn, nó có thể đã có trong thanh công cụ của bạn, nhưng nếu không.

  1. Nhấp chuột phải vào các giải pháp
  2. Chọn Configuration Manager ...
  3. Đảm bảo rằng gỡ lỗi được chọn trong "cấu hình giải pháp hoạt động" thả xuống
+0

Không, đã chọn - Tôi chỉ có cấu hình Gỡ lỗi trong dự án mà tôi hiện đang làm việc. Và, một lần nữa, không có bước 'biên dịch' để gọi cấu hình - nó chỉ lưu tệp .ASP và làm mới trình duyệt. Cảm ơn, tho! – Val

+0

Sự cố này có xảy ra trên máy của người khác không? Nếu có, hãy kiểm tra các thiết lập xây dựng cho dự án để đảm bảo nó tạo ra thông tin gỡ rối đúng. Tôi đoán bạn đã thử xây dựng lại? Nếu không có công trình nào trong số này hoạt động thì tôi có lẽ chỉ cần ném tay vào không khí, hét lên, và sau đó cài đặt lại VS. – knightpfhor

+0

Không có gì để xây dựng, nhưng tôi đã xây dựng lại, để không có hiệu lực. Tôi sẽ xem liệu tôi có thể tái sản xuất trên một cỗ máy khác không, tho - ý tưởng hay! Tôi không nghĩ rằng nó chỉ là VS - nó xảy ra trong tất cả các phiên bản của VS, cộng với MS Script Debugger, vì vậy một số thành phần phổ biến đang được gọi ... – Val

2

tôi đã cùng một vấn đề trong VS2008 . Chuyển đổi tập tin asp thành ANSI-encoding (với Notepad ++) đã giải quyết nó.

2

Chắc chắn có vấn đề với mã hóa. Các tập tin được trong ANSI, và tôi chuyển đổi sang một số định dạng khác, và thay đổi trở lại ANSI và giải quyết vấn đề. Hãy cẩn thận vì bạn có thể mất các ký tự đặc biệt thay đổi mã hóa.

+0

Tôi muốn thêm rằng nó cũng là cần thiết để kiểm tra mã hóa của tất cả các tệp được tập lệnh đưa vào bởi lệnh ''. –

0

Điều này vẫn xảy ra trong VS2010.

Điều tôi tìm thấy xung quanh nó, là chọn Phát hành và Gỡ lỗi. Xây dựng lại dự án. Chuyển về Debug và bùng nổ.

Bạn đã được đồng bộ hóa một lần nữa.

3

Trong trường hợp của tôi, đó là dòng sai trong tệp sourcecodefile. VS mong đợi \ x0D \ x0A nhưng tôi chỉ có \ x0D. Có một cài đặt trong Tùy chọn -> Môi trường -> Tài liệu -> thứ gì đó có dòng kết thúc (tôi không sử dụng so với tiếng Anh để tôi chỉ có thể đoán). Kiểm tra các tùy chọn này đã giải quyết được vấn đề của tôi.

2

Tôi có thêm ; trong tệp của tôi trước khi nhận xét. Không có ý tưởng làm thế nào điều này gây ra vấn đề nhưng loại bỏ nó dường như để sửa chữa mọi thứ.

+1

TRẢ LỜI BÀI HÁT NHẤT CỦA NĂM NĂM 1. Có tệp 80c + .c và khi đặt điểm ngắt, chương trình sẽ ngắt hàng nghìn dòng. Nó sẽ bước qua logic đúng nhưng không bao giờ hiển thị đúng vị trí. Tìm những cốm này ; // tự mình đứng và xóa chúng đã giải quyết được. – Sean

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