Jak utworzyć przydatne śledzenie wsteczne w systemie Linux

Objawy

Podczas pracy na Linuksie czasami może się zdarzyć, że BricsCAD nagle się zawiesi i zniknie.

Podczas uruchamiania BricsCAD z terminala wyświetlany jest krótki komunikat o błędzie (często będzie to "Błąd segmentacji"), ale nie dostarcza to pomocnych informacji o tym, dlaczego dochodzi do awarii.

Od wersji BricsCAD V24.2, w przypadku awarii (błąd segmentacji), aplikacja generuje crash_report.txt, który zawiera informacje diagnostyczne, w tym ślad wsteczny.

W takim przypadku ślad wsteczny (ślad stosu) staje się bardzo przydatny dla zespołu pomocy technicznej w celu zidentyfikowania przyczyny awarii. Pokazuje bieżący stos zagnieżdżonych wywołań funkcji w momencie awarii.

Przyczyna

BricsCAD ulega awarii bez przydatnych informacji o awarii.

Rozwiązanie

Aby uzyskać ślad wsteczny, wykonaj następujące kroki:
  1. W instancji Terminala uruchom BricsCAD wewnątrz gdb za pomocą następującego polecenia:
    LD_LIBRARY_PATH=/opt/bricsys/bricscad/vXX GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb gdb 
    /opt/bricsys/bricscad/vXX/bricscad
    Uwaga: vXX zostanie zastąpiony głównym numerem wersji BricsCAD, na przykład V25.
  2. W oknie wpisz uruchom i naciśnij Enter , aby uruchomić program.
  3. Odtwórz awarię. Po awarii okno BricsCAD po prostu zawiesza się, ale nie znika.
  4. Przełącz się z powrotem do terminala, wpisz bt i naciśnij Enter , aby uzyskać ślad wsteczny.

    Jeśli bt nie działa, oznacza to, że BricsCAD może się zawieszać, a nie zawieszać. W takim przypadku naciśnij CTRL+C , aby wstrzymać BricsCAD, a następnie bt powinno działać.

    Podobnie jak w przypadku bt, uruchom polecenie gdb disas i wklej dane wyjściowe do tego samego pliku tekstowego.

    Pełny ślad wsteczny może nie pasować do ekranu. W takim przypadku ostatni wiersz brzmi następująco:
    ---Wpisz  < return >, aby kontynuować, lub q < return > aby zakończyć---
  5. Skopiuj odpowiednią część śladu wstecznego do edytora tekstu i dołącz ją do wniosku o pomoc techniczną lub opublikuj bezpośrednio w żądaniu pomocy technicznej.
  6. Wpisz q i naciśnij Enter w oknie Terminala.
  7. Wpisz y i naciśnij Enter , aby potwierdzić.