我知道我可以使用jump
將程序計數器設置爲特定行,所以我可以跳過一行或多行(或再次執行一些行)。我能否輕鬆跳過下一行而不必輸入行號?我可以使用gdb跳過一行而不必輸入行號嗎?
這會在運行時「註釋掉」某些東西非常方便。
我知道我可以使用jump
將程序計數器設置爲特定行,所以我可以跳過一行或多行(或再次執行一些行)。我能否輕鬆跳過下一行而不必輸入行號?我可以使用gdb跳過一行而不必輸入行號嗎?
這會在運行時「註釋掉」某些東西非常方便。
jump +1
跳到下一行,即跳過當前行。您可能還想將其與tbreak +1
結合以在跳轉目標處設置臨時斷點。
請參閱http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html瞭解更多用gdb表示位置的方法。
請注意,沒有斷點gdb
可能會繼續正常執行而不是跳轉。所以如果跳躍似乎不起作用,請確保在目的地設置斷點。
很明顯,但謝謝!通過Debugger Command使用斷點在Xcode中很好地工作。 – 2010-10-27 20:52:59
應該指出的是,這也適用於LLDB。 :) – 2014-12-15 17:28:41
如果您直接在asm中工作,則可以通過發出一個'j addr'跳轉到您想要的指令,其中'addr'是您要跳轉到的地址。 – dionyziz 2017-03-03 14:41:24
在執行期間跳過線的任何數字:
[Current Position -- in GDB] Line N
.......... // Lines To Skip
..........
..........
[Line To Execute - After Jumping] Line M
放在m行斷點:
gdb$b M
跳到線路M:
gdb$jump M
相關:更多關於使用'jump'的常規東西(例如,它只在當前函數內部是安全的,並且僅當您使用'-O0'編譯時):https://stackoverflow.com/questions/4116632/is-它可能跳到跳過gdb調試器/ 46043760#46043760 – 2017-09-04 20:38:25