我正在調試一個C/C++程序,我想根據多個變量設置一個具有條件的斷點。在非本機類型上具有多個條件的GDB斷點
休息Foo.cpp中:60如果(巴== 3 & & == 5 I)
這似乎並沒有工作,因爲它停止每當它擊中Foo.cpp中:60而不是每當兩個條件匹配時(它甚至不符合其中一個條件)。有沒有一種簡單的方法來實現我想要實現的目標?
編輯:bar和我不是原生C類型,它們是強類型的。
休息Foo.cpp中:60如果((A)條== 3 & &(B)我== 5)
我正在調試一個C/C++程序,我想根據多個變量設置一個具有條件的斷點。在非本機類型上具有多個條件的GDB斷點
休息Foo.cpp中:60如果(巴== 3 & & == 5 I)
這似乎並沒有工作,因爲它停止每當它擊中Foo.cpp中:60而不是每當兩個條件匹配時(它甚至不符合其中一個條件)。有沒有一種簡單的方法來實現我想要實現的目標?
編輯:bar和我不是原生C類型,它們是強類型的。
休息Foo.cpp中:60如果((A)條== 3 & &(B)我== 5)
解決您的條件語句及其結果放入自己的布爾變量,然後設置您的斷點語句來評估單個變量。這使得表格與GDB中顯示的例子保持一致。文檔:
如:
BOOL x = FALSE;
x = ((bar == 3) && (i == 5));
(gdb) break foo.cpp:60 if x
這對我的作品。
(gdb) b dump_route_info if (strncmp(route->rt_key.prefix, "192.168.0.2", 15) == 0) && route->rt_key.mask == 32
查看GDB文檔。以下是_ [quickStartGuide](http://teaching.csse.uwa.edu.au/units/CITS2230/resources/gdb-intro.html#breakpoints)_的位置。 – ryyker
「它們是強類型的」 - 這告訴我們*沒有*。如果您需要幫助,您需要提供https://stackoverflow.com/help/mcve。 –
當它錯誤地停在第60行時,'p bar','p(A)bar','p i'和'p(B)i'顯示什麼? –