if
deyimi içinde kod çalıştırmak için GDB anlamanın bir yolu var mı?
cevap
kullanırsanız girmeden olmaz. sen, sen if
durdu varsayarsak: derleyici optimizasyonlar az olsaydı
jump +2
Teşekkürler! Tam olarak aradığım şey buydu. – Randomblue
Size bir geçici çözüm önerebilirim. Geçici değişken int i=0
var ve sonra bunu size gdb ile istenilen konuma ulaştığında
if(i==1){
//some code
}
olarak eğer.
set i = 1
kullanılarak 1'e i
ayarlayın ve sonra döngü çalıştırılacaktır. Elbette, döngüden sonra, her seferinde idam edilmesini istemiyorsanız, sizi sıfırlamanız gerekecektir. Eğer yürütülecek eğer açıklamada kodunuzu istiyorsanız
Evet, bunu düşünüyordum. Daha az bir şey için umuyordum. – Randomblue
@Randomblue Ve kodunuzda bir 'if (0) {}' ifadesine sahip olmak zaten hacky değil mi? – HonkyTonk
@HonkyTonk: Aslında benim 'if' ifadesi o kadar da aptal değil; sadece illüstrasyon içindi. Gerçek hayatta 'if (someFunction()) '' '' BazıFonksiyon() 'çoğu zaman' 0 'olarak değerlendirir. – Randomblue
if (1)
için
if (0)
değiştirin
.
0 yanlış demektir, bu yüzden döngü, Sen // Some code
dışarı optimize edilmemiş sürece, 17.2 Continuing at a Different Address bkz gdb if
deyimi üzerinde durduktan sonra // Some code
atlayabilirsiniz
if(1)
kod bile olmayabilir. – pmg