2010-09-19 32 views
7

Có cách nào để kiểm tra xem biến tiện lợi đã được đặt trong gdb hay chưa?Kiểm tra nếu biến thuận tiện gdb được xác định

Ví dụ:

 
(gdb) if $_exitcode == 0 
>quit 
>end 
Invalid type combination in equality test. 
(gdb) p $_exitcode 
$1 = void 

$_exitcodevoid bởi vì nó không được thiết lập cho đến khi chương trình kết thúc. Cấu trúc có sẵn gần nhất là init-if-undefined, nhưng điều này sẽ yêu cầu đặt biến cho một số giá trị sentinel và thử nghiệm với điều đó.

Trả lời

2

Có vấn đề tương tự .. bạn không thể kiểm tra xem biến đã được đặt hay không theo như tôi biết trong GDB .. bạn có thể chạy nó thông qua python, có thể và toàn bộ tập lệnh chạy theo cách đó , nhưng tôi không chắc chắn về nó các kịch bản python trong GDB là dai dẳng hoặc chạy tất cả các thời gian. Bạn có thể làm một cái gì đó giống như ..

init-if-undefined $_exitcode = 1 
if $_exitcode == 0 
quit 
end 
end 
4

vì code quá trình thoát bình thường nằm đâu đó ở giữa 0 và 255, Tôi đề nghị sau:

init-if-undefined $_exitcode = -1 
if ($_exitcode != -1) 
    quit 
end 
Các vấn đề liên quan