heby
unread,Sep 27, 2023, 3:31:03 PM9/27/23You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Cześć.
Jest program w C/C++. Aplikacja zawiera dokładnie 1 zmienną globalną,
tak ważną, że chciałbym jej stan (w dodatku wymagający obliczeń
matematycznych) obserwować w każdym kontekście debugu, bez względu na
ramkę stosu.
Tak wiem, mogę ja wsadzić do watcha, ale zagadnienie jest nieco bardziej
skomplikowane, w niektórych kontekstach wymaga ona innego policzenia i
czasasami "unieważnia się" a wtedy wyniki mogą być mylące. Wolałbym ją
obserwować w locals i "zniknąć" w niektórych sytuacjach.
Pytanie 1:
Czy pythonowy interfejs do pretty printerów pozwala:
1) dodać "obcą" zmienną do listy widzianych w danej ramce
albo
2) podmienić/owrapować oryginalny obiekt "ramka stosu" tak, aby zwarcał
moją listę zmiennych?
Pytanie 2:
Jako bonus mam też inny problem: w fizycznej metodzie "children()"
pretty printera chciałbym, poza normalnie obsługiwanymi polami klasy,
wyświetlić też wirtualne pole "[raw]" w którym znajdzie się struktura
obiektu bez modyfikacji. Co wymaga wyiterowania pól.
Na razie robocza hipoteza jest taka, że się nie da, bo nie da się
wyiterować pól przychodzących jako "value" do obiektu pretty printera,
mimo że ma stosowany interfejs do iteracji. Wygląda na jakieś odwalanie
dziadostwa po stronie gdb, brakuje implementacji metod mimo ich dostepności.
Ktoś ma jakieś podpowiedzi lub linki do pretty printerów posiadających
takie zaawansowane opcje, jak manipulacje ilością zmiennych i iteracje
przez pola obiektów?
Jestem ogólnie zawiedziony tym interfejsem, wygląda jak następny OO
zaprojektowany przez programatora C, czyli kompletnie bez pojęcia :/