Steven doğrudur - gdb komut po
(Tahmin edebileceğiniz gibi, değil -description
) aslında bir argüman olarak verilen nesne üzerinde -debugDescription
çağıran print-object
için bir kısayol vardır. Birçok durumda, her ikisi de aynı sonucu görürsünüz, biri geçersiz kılınmadıkça diğerini çağırır. (Ilgili Not bakınız:. Ayrıntılar için this Apple technote üzerinde ek bilgiyi unutmayın onların kod örneğinde Intel kayıtları, vb dahil po $r3
baskılar PowerPC kaydının içerikleri, ancak herhangi bir nesne işaretçi/başvuru kullanabilirsiniz,)
Ayrıca, print-object
'un yalnızca ayrılmamış geçerli nesneler üzerinde çalışacağını unutmayın. İşaretli bir işaretçiye mesaj gönderiyorsanız hiç yardımcı olmaz. Bahsettiğiniz hata göz önüne alındığında, geçerli bir nesne örneği gibi görünecektir, sadece çağırmaya çalıştığınız yöntemi uygulamıyor.
Nesnenin daha önce imha edildiği uzaktan da mümkündür. Bu durumda This answer yardımcı olmalıdır.
Düzenleme: ayıklayıcısında nesneleri "incelemek" için başka yolları da vardır
.Xcode veri biçimlendiricileri hakkında this SO question sordum; bu, özel bir sınıfın hata ayıklayıcısının Özet sütununda nasıl göründüğünü belirleyebileceğiniz bir yoldur. Bu soruyla bağlantılı belgeler nasıl çalıştığını açıklar. Bir nesnenin durumunu görerek çok yardımcı olmak için özet yaklaşımını buldum.
"po 1" programınızı bozmaz - gdb bundan daha akıllıdır. Sadece bir hata mesajı basacaktır. –
Ayrıca not, nesne olmayan şeyler (int gibi) yazdırmak için, sadece bize p, 'p 1' gibi – RickDT
nereye yazabilirsiniz? – chwi