Aby usunąć symbole, możesz zlecić Qt Creator wykonanie końcowego kroku po qmake i make, który wywołuje polecenie "strip" w pliku binarnym w pakiecie aplikacji. Na przykład: -
strip -u -r ./MyApplication/Contents/MacOS/MyApplication
W celu debugowania, że ty potrzebujesz separate .dsym file być generowane w czasie kompilacji, która zawiera symbole. Jeśli znajduje się on na hoście, debugger powinien automatycznie odebrać to; robi to z lldb, ale z gdb, możesz potrzebować ręcznie załadować plik symboli.
jak włączyć ten dodatkowy krok gromadzeniu
wyboru projektów z paska narzędziowego po prawej stronie
zapewnić sobie na zbudowanie i zakładce Run (GraphicsScene jest tylko nazwa projektu)
Poniżej Zbuduj kroki, zobaczysz dwa kroki, qMake
i Make
. Wybierz dodać kompilacji krok po kroku procesu zwyczaj
wypełnienie odpowiednich pól może trzeba skorygować ścieżki, zamiast po prostu skopiować te:
Kiedy kompilacja zakończyło się, polecenie paska uruchomi się. Jeśli masz jakieś błędy, prawdopodobnie problem dotyczy ścieżki do polecenia strip lub ścieżki do pliku wykonywalnego pakietu aplikacji.
Należy pamiętać, że jeśli potrzebna jest pełna ścieżka do usunięcia, znajduje się ona w katalogu/usr/bin/strip.
Jeśli chodzi o plik symboli, to uważam, że można użyć polecenia addsymbolfile
z argumentem do ścieżki do pliku dsym. Jednak gdb jest już nieaktualne i powinieneś naprawdę używać lldb teraz, który automatycznie znajduje plik dsym po jego indeksowaniu przez Spotlight.
używam Qt Creator z mój gdb z narzędziami, nic nadzwyczajnego. Projekt jest zbudowany z Kreatora za pomocą qmake. Czy możesz nieco rozszerzyć sposób włączania dodatkowego etapu kompilacji i jak ręcznie ładować te symbole, o czym wspomniałeś? – Steve
Zaktualizowałem odpowiedź w odpowiedzi na Twoje pytanie. – TheDarkKnight
Czy ten niestandardowy proces jest krokiem lokalnym na komputerze programisty, czy jest on zapisany gdzieś w pliku .pro? Chciałbym móc to wdrożyć i sprawić, że będzie "po prostu działać" dla innych programistów w moim zespole. Dam ci szansę przed końcem tygodnia. – Steve