2012-01-31 15 views
10

Piszę dużo kodu przetwarzania obrazu z dużą ilością różnych obrazów zaangażowanych w niezarządzanego C++ w Visual Studio 2010. Chcę móc oglądać je prawie tak łatwo, jak prosty identyfikator podczas kroku krok po kroku debugowanie.Debugowanie niezarządzanych obrazów w C++ w Visual Studio

Moje obecne rozwiązanie polega na użyciu funkcji eksportującej obraz w konsoli Matlab. Jest ok, ale wymaga modyfikacji kodu źródłowego, a ja chcę to zrobić tylko podczas debugowania. Najlepszą opcją jest po prostu pojawienie się obrazu podczas zawieszania zawierającego zmienną za pomocą myszy. Ale wystarczy napisać komendę ExportToMatlab(image) w oknie poleceń. Nie wiem jednak, jak to zrobić.

Istnieje bardzo podobne pytanie "Debugging image rendering in Visual C++, any helpful add-ins?", ale jest zbyt stare i nie znalazłem akceptowalnych odpowiedzi w tej dyskusji. Niektóre narzędzia są oparte na technologii .NET (patrz zdjęcie poniżej), niektóre wymagają dodatkowego kodu do napisania (to właśnie obecnie używam), a niektóre projekty są zamrożone lub niedokończone.

Screenshot from DebuggerVisualizer

mogę spędzić trochę czasu na wdrożenie odpowiedniego rozwiązania, więc linki do kilku dobrych przewodników, w jaki sposób dostosować debugger wizualizera w VS są zbyt mile widziane.

Aktualizacja

Utworzyłem Visual Studio w oparciu o rozszerzenie Expression Evaluator Add-In. Można go pobrać ze strony projektu SourceForge o nazwie NativeViewer. Sprawdź opis, jak go używać.

+0

Natywna debugger nie coś podobnego do wizualizacje dostępnych w kodzie zarządzanym wspierać. Brak funkcji rdzenia polega na uruchomieniu dowolnego kodu w innym wątku, gdy aktywny jest punkt przerwania. –

+0

A co z dostępem do wewnętrznego stanu programu poprzez natychmiastowe okno? Czy mogę uruchomić jakieś makro w tym celu? – Mikhail

Odpowiedz

3

Tylko dla historii: zaimplementowałem własne rozwiązanie oparte na Expression Evaluator Add-In. Nie pasuje wystarczająco dobrze, ale udało mi się zrealizować wszystko, czego potrzebowałem.

Aktualizacja

Utworzyłem publicznie dostępne rozszerzenie Visual Studio. Można go pobrać ze strony projektu SourceForge pod nazwą NativeViewer. Sprawdź opis, jak go używać.

+1

Czy Twój wynik jest dostępny publicznie? – 0xC0000022L

+0

@ 0xC0000022L Wymienione rozwiązanie jest zbyt szczegółowe i nie jest publicznie udostępniane. Obecnie pracuję nad wygodniejszym rozszerzeniem VS, aby wyświetlać obrazy OpenCV (nie będzie tak trudno dostosować się do innych formatów). Jest dostępny pod adresem http://sourceforge.net/projects/nativeviewer/. Jednak nie jest jeszcze gotowy do użycia. – Mikhail

+0

dzięki za odpowiedź. – 0xC0000022L

4

Nie mogę uwierzyć, że nikt jeszcze nie zasugerował Image Watch. To najbardziej niesamowity dodatek w historii. Wyświetla widok ze wszystkimi zmiennymi Mat (obrazki (szary i kolor), macierze) podczas debugowania, przydatne rzeczy, takie jak powiększanie lub rozciąganie kontrastu, a nawet można zastosować bardziej złożone funkcje bezpośrednio w wtyczce w czasie rzeczywistym. Ułatwia debugowanie wszelkiego rodzaju operacji obrazowych i jest niezmiernie pomocna, jeśli wykonujesz obliczenia i elementy algebry liniowej za pomocą macierzy cv :: Mat.

enter image description here

+0

Gdy zadano pytanie, nie było jeszcze Image Watch :) Obecnie już go używam. Ale twoja odpowiedź może być pomocna dla innych, pochodzi z wyszukiwarek, więc +1 – Mikhail

+0

Tak, to prawda. Czuję, że używam go od wieków :-) – Ela782

Powiązane problemy