2010-11-22 31 views
5

Tôi đã có một ứng dụng giao diện điều khiển gặp sự cố với lỗi I/O 6 khi đầu ra được chuyển hướng đến tệp. Nó có thể có một cái gì đó để làm với thực tế là các ứng dụng giao diện điều khiển thay đổi màu văn bản, mà không có ý nghĩa nhiều trong một tập tin.Cách gỡ lỗi ứng dụng Delphi với đầu ra được chuyển hướng

  • này hoạt động: c:\dir\app.exe
  • tai nạn này: c:\dir\app.exe >out.txt

Khi tôi cung cấp >out.txt như một tham số trong IDE (run\parameters\parameters\), tôi chỉ nhận được >out.txt như một tham số.

Tôi làm cách nào để gỡ lỗi ứng dụng bằng trình chuyển tiếp dữ liệu được chuyển hướng sang tệp thay vì bảng điều khiển?

Trả lời

12

Redirection được thực hiện bởi các thông dịch dòng lệnh, trong cửa sổ đó là cmd.exe

Để debug ứng dụng, chỉ cần khởi động một cmd.exe với đối số propers để khởi động ứng dụng của bạn và chuyển hướng đầu ra, ví dụ:

cmd.exe/c "yourapplication.exe> ​​redirect.txt"

Để thực hiện điều này từ bên trong IDE để debug, cấu hình cmd.exe như các ứng dụng máy chủ (Run/Parameters):

Run/Parameters dialog

Đặt một breakpoint nơi bạn muốn dừng lại, và khởi động một cmd.exe mới (Dự án/load quá trình) với "Chạy để nguồn đầu tiên" sau hành động tải:

Load process dialog

Và bạn đã hoàn tất ... trình gỡ lỗi phải chấm dứt việc áp dụng tại breakpoint của bạn.

2

Bạn có thể thử gỡ lỗi từ xa:

  • vào đầu của ứng dụng, thêm một ReadLn; mà cung cấp cho bạn thời gian để đính kèm vào quá trình này từ bên trong Delphi

  • khởi động ứng dụng từ một lệnh dòng (chỉ định tham số> out.txt)

  • trong Delphi, kết nối với quy trình ứng dụng (Run | Attach to Process...), đặt điểm ngắt và sau đó chuyển sang ứng dụng để nhập một phím

Gợi ý: một breakpoint debugger cũng có thể được thiết lập trong mã:

asm 
    int 3 
end; 
0

Đảm bảo rằng nó không bị lỗi do quyền thư mục. Hoàn toàn đủ điều kiện cho đường dẫn tệp đầu ra đến một nơi nào đó mà bạn được đảm bảo để có thể viết. Nếu không, Windows7 có thể đang chơi trò chơi với thư mục. (Công cụ VirtualStore).

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