2010-05-06 65 views
14

Tôi tò mò muốn biết nếu có một cách để chỉnh sửa mã trong C# VS 2008 ngay khi nó đã đạt đến điểm ngắt và tôi đang đi qua mã ... tôi có thể sửa đổi mã (chẳng hạn như giá trị trong một biến hoặc nếu dòng stepthrough của tôi là về để đạt một tuyên bố nếu ... tôi có thể sửa đổi các tuyên bố nếu .... vv)? Cho đến nay, tôi phải ngừng chạy VS, sửa đổi mã, sau đó nhấn F5 và đợi đến khi điểm ngắt được nhấn lần nữa.Chỉnh sửa mã trong Visual Studio 2008 ở chế độ gỡ lỗi

Khi điểm ngắt truy cập và tôi đang đi qua mã, và tôi cố gắng chỉnh sửa mã, tôi nhận được thông báo "Thay đổi không được phép khi trình gỡ lỗi được đính kèm vào quá trình đang chạy mã đang được sửa lỗi được tối ưu hóa ở thời gian chạy hoặc chạy. "

+0

Bạn đã thử chưa? – SLaks

+0

Ngôn ngữ nào? – SLaks

+0

Tôi đang sử dụng C#. Tôi đã thử nó nhưng tôi nhận được một thông báo nói rằng "Thay đổi không được phép khi trình gỡ lỗi đã được gắn vào một quá trình đang chạy của mã đang được gỡ lỗi được tối ưu hóa tại thời gian xây dựng hoặc chạy." – user279521

Trả lời

6

Chỉ có một vài lý do tôi biết tại sao Chỉnh sửa + Tiếp tục sẽ bị tắt trong bản dựng Gỡ lỗi. Đầu tiên và quan trọng nhất là hệ điều hành 64 bit, E + C chỉ hoạt động đối với mã 32 bit. Khắc phục điều đó với Project + Properties, tab Build, Platform Target = x86.

Đây cũng là một tùy chọn có thể đã bị tắt. Công cụ + Tùy chọn, Gỡ lỗi, Chỉnh sửa và Tiếp tục, Bật hộp kiểm. Nếu điều này không giúp ích, hãy cho chúng tôi biết thêm một chút về loại mã bạn đang gỡ lỗi, mẫu dự án bạn đã chọn khi bạn bắt đầu dự án, cách bạn đã gỡ lỗi trình gỡ lỗi và bản sao ngăn xếp được sao chép từ cửa sổ Call Stack.

+0

Nền tảng đích là "Bất kỳ CPU". Tôi đã thay đổi thành x86, E & C vẫn không hoạt động. Công cụ + Tùy chọn, gỡ lỗi. Đã bật hộp kiểm E & C. – user279521

+0

Tôi đang gỡ lỗi mã C# trong mã phía sau. Mẫu dự án dưới dạng WebForm.aspx. Tôi đặt một điểm ngắt để có được trình gỡ lỗi để phá vỡ. Làm thế nào tôi có thể nhận được bản sao ngăn xếp ngăn xếp? – user279521

+2

@user, đọc này: http://whyiamright.wordpress.com/2007/12/20/aspnet-edit-and-continue-in-visual-studio-2005/ –

4

Có, bạn có thể.
Đây được gọi là Edit and Continue.
Lưu ý rằng nó có một số limitations.

EDIT: Bạn cần chuyển sang bản dựng gỡ lỗi.

+0

Tôi làm cách nào để "Chỉnh sửa và Tiếp tục"? – user279521

+0

Hãy đột nhập vào trình gỡ rối (hoặc nhấn điểm ngắt hoặc nhấn nút tạm dừng) và * Chỉnh sửa * mã sau đó * Tiếp tục * bằng nút Phát hoặc F5 (hoặc F10 hoặc F11 tùy thuộc vào việc bạn đang làm) – Paolo

0

Đáp lại câu hỏi này:

tôi có thể thay đổi mã (chẳng hạn như giá trị trong một biến hoặc nếu dòng stepthrough của tôi là về để đạt một nếu tuyên bố ... tôi có thể sửa đổi nếu câu hỏi .... vv)?

Bạn có thể không bật một giá trị mới vào một biến trực tiếp, nhưng những gì bạn có thể làm điều này là:

  1. Đặt một breakpoint
  2. Khi breakpoint được nhấn, nhấp vào mũi tên ở bên trái lề và kéo nó lên đến dòng trước
  3. Bây giờ bạn có thể thêm mã để thay đổi trường hợp (ví dụ: bạn có thể đặt biến thành giá trị mới, thêm/xóa mục khỏi bộ sưu tập, v.v.)

Xem các câu trả lời khác về việc bật Chỉnh sửa & Tiếp tục - đặc biệt, đảm bảo bạn đang ở chế độ Gỡ lỗi.

0

Để giải quyết vấn đề này, tôi đã làm như sau ...

BUILD> Configuration Manager

tích cực giải pháp cấu hình: DEBUG dự án cấu hình bối cảnh: DEBUG

rồi Tools> Options> Debugging> EDIT & CONTINUE đảm bảo chỉnh sửa & tiếp tục được chọn

sau đó XÂY DỰNG> GIẢI PHÁP SẠCH rồi XÂY DỰNG> GIẢI PHÁP REBUILD

Sau đó bắt đầu gỡ lỗi, sau đó tạm dừng, sau đó mã của bạn sẽ được chỉnh sửa

1

Để sửa đổi giá trị của biến hoặc đặt thuộc tính khi ở chế độ ngắt, chuyển đến cửa sổ ngay lập tức, đặt giá trị mới và nhấn trở lại ví dụ:

strValue = "newValue" 
Calendar1.Enabled = true 

Để truy xuất giá trị bạn chỉ có thể in nó vào cửa sổ e.e.

?strValue 
?Calendar1.Enabled 
1
  1. Dừng chạy ứng dụng của bạn.
  2. Chuyển đến Công cụ> Tùy chọn> Gỡ lỗi> Chỉnh sửa và tiếp tục
  3. Tắt "Bật chỉnh sửa và tiếp tục".
Các vấn đề liên quan