2009-12-16 36 views
7

Tôi có một bộ các điểm ngắt cơ bản được xác định trong fn setup do người dùng định nghĩa trong tệp .gdbinit của tôi. Vì vậy, mỗi khi tôi bắt đầu gdb, tôi phải thực hiện fn đó. để thiết lập tất cả các brkpoints của tôi, trước khi tôi bắt đầu gỡ lỗi. Tôi có thể cấu hình của tôi .gdbinit để bất cứ khi nào nó bắt đầu, nó đầu tiên thực hiện của tôi do người dùng định nghĩa fn setup?Làm thế nào để làm cho gdb chạy một hàm do người dùng định nghĩa (được định nghĩa trong .gdbinit) mỗi khi nó bắt đầu?

Trả lời

9

Chỉ cần gọi nó bằng tên hàm:

.gdbinit của tôi:

define setup  
    echo Foobar\n 
end 

setup #This is the function call 

Và khi tôi chạy nó:

$ gdb 
GNU gdb Fedora (6.8-37.el5) 
Copyright (C) 2008 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "x86_64-redhat-linux-gnu". 
Foobar 
(gdb) 
+0

Không làm việc cho tôi - cho lỗi này: .no bảng biểu tượng được tải. Sử dụng lệnh "tập tin". Không có bảng biểu tượng nào được tải. Sử dụng lệnh "tập tin". Không có bảng biểu tượng nào được tải. Sử dụng lệnh "tập tin". Không có bảng biểu tượng nào được tải. Sử dụng lệnh "tập tin". /home/sbhowmick/.gdbinit:83: Lỗi trong tệp lệnh có nguồn gốc: Không có tệp thực thi nào được chỉ định. Sử dụng lệnh "tệp" hoặc "exec-file". Sử dụng thư viện libthread_db của máy chủ lưu trữ "/lib/tls/libthread_db.so.1". Tôi đang sử dụng GNU gdb Red Hat Linux (6.3.0.0-1.138.el3rh) – TCSGrad

+0

tập tin .gdbinit của tôi trông như thế này: xác định thiết lập BR ct1 BR FN2 cuối xác định some_other_fn ... end thiết lập – TCSGrad

+0

Điều này là do bạn không tải tệp nhị phân, nếu bạn định nghĩa điểm ngắt, tệp nhị phân phải được tải khi đã bắt đầu GDB, ví dụ: bạn phải xác định "tệp a.out" hoặc smtg như vậy trong tệp .gdbinit của bạn trước khi đặt các điểm ngắt hoặc chạy "gdb a.out" hoặc như vậy. – Kimvais

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