2012-12-18 16 views
5

Obecnie rozwijam Cocos2d-x z Xcode. Ale nie wiem jak sprawdzić rzeczywistą klasę obiektu C++ z LLDB. Jak widać na obrazku, inspektor Xcode zna rzeczywistą klasę, ale nie ma takiej wartości.Jak sprawdzić rzeczywistą klasę obiektu C++ za pomocą LLDB?

Pytanie brzmi: jak zbadać rzeczywistą klasę obiektu C++ za pomocą LLDB?

LLDB knows the actual class

+0

Co masz na myśli przez "klasę prawdy"? –

+0

Myślę, że ma na myśli "aktualną klasę". C++ nie ma informacji o typie, tzn. Normalnie klasy C++ nie wiedzą, czym one są. Dobre debuggery wykorzystują formatowanie typów do obejścia tego zachowania, LLDB ma format opisu typu, może to trochę pomóc: http://lldb.llvm.org/varformats.html – LearnCocos2D

+0

@JoachimPileborg Mam zaktualizowane pytania;) To jest "rzeczywiste klasa". – HKTonyLee

Odpowiedz

5

To dlatego, że Xcode UI ma "dynamiczne typy" domyślnie włączona. Typy dynamiczne są językiem LLDB dla "Mam zamiar dowiedzieć się rzeczywistego typu tego obiektu". W celu uzyskania takiego samego zachowania w konsoli, można próbować wpisywać

(lldb) zmienna frame -d run-target pObject

W open source LLDB, można również wpisać

(lldb) expr -d run-target - pObject

+0

Dzięki! Twoja odpowiedź działa! :) – HKTonyLee

Powiązane problemy