2008-11-19 28 views
6

Tôi có một ứng dụng nhạy cảm với thư mục được gọi từ đó - nó tải một số tệp bằng đường dẫn tương đối.Làm thế nào để bạn thiết lập thư mục hiện tại của một quá trình gỡ lỗi?

Khi tôi khởi động chương trình thông qua trình gỡ rối, làm thế nào tôi có thể kiểm soát thư mục hiện tại ban đầu sẽ là gì?

Tôi muốn tránh thêm mã đặc biệt vào chương trình được gỡ lỗi để gọi nó là chdir; bản năng của tôi là trình gỡ lỗi sẽ cung cấp một số cách để chỉ định rằng bên ngoài, vì nó vốn dĩ là một thiết lập bên ngoài.

Trình gỡ lỗi tôi đang sử dụng là TotalView, nhưng tôi mở để trả lời cho các trình gỡ rối Linux khác vì nó có thể giúp tôi tìm thấy cài đặt có thể so sánh trong TV. Tôi có thể chỉ định biến môi trường khi tôi gọi chương trình, do đó, trên một lark, tôi đã cố gắng thiết lập PWD, nhưng không có may mắn.

Trả lời

6

Với GDB, thư mục làm việc ban đầu là thư mục bạn khởi tạo GDB. Vì vậy, chỉ cần chạy GDB từ bất cứ điều gì bạn muốn thư mục làm việc được. Ngoài ra, trong khi chương trình đang chạy, bạn có thể thay đổi thư mục làm việc hiện tại chỉ bằng cách làm:

(gdb) print chdir("new/working/directory") 

GDB cũng có một built-in lệnh để thay đổi quá trình thư mục làm việc kể từ dấu nhắc GDB:

(gdb) cd new/working/directory 

Tôi chưa bao giờ sử dụng TotalView, nhưng nó phải có chức năng tương tự để thực thi mã (với các tác dụng phụ) từ bên trong trình gỡ lỗi.

+0

Ồ, thật dễ dàng. Thay đổi thư mục tôi bắt đầu TotalView từ làm việc. Nó cũng có lệnh "Đánh giá" trong trình đơn Công cụ để chạy các lệnh ngay lập tức như chdir. Cảm ơn bạn đã di chuyển đúng hướng! –

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