Próbuję uruchomić aplikację na serwerze X i otrzymuję następujący komunikat:
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 45 (X_OpenFont)
Serial number of failed request: 6
Current serial number in output stream: 9
O ile rozumiem ze wszystkiego, co przeczytałem, oznacza to, że komputer, na którym próbuję wyświetlić, nie ma czcionki. Problem w tym, że nie wiem, jakiej czcionki brakuje. Powyższy komunikat jest jedynym wyświetlanym komunikatem.
Jak ustalić, jakiej czcionki brakuje?
Zagryźć:
Zmieniłem zmienną DISPLAY na localhost: ... i obserwowałem przepływające pakiety za pomocą wireshark. Wygląda na to, że nazwa żądanej czcionki to „*”. Czy jest problem z tym żądaniem? Wydaje mi się, że spowoduje to załadowanie dowolnej czcionki. Czy jest problem z konfiguracją mojej czcionki?
Więcej działań następczych:
Potwierdziłem na działającym komputerze, że żąda również czcionki „*”. Wiem to, ponieważ wychwytuję wywołania XLoadFont za pomocą gdb, a parametr name pojawia się jako „*”.
Co się stanie w tym przypadku? Czy ma to zwracać dosłownie dowolną czcionkę?
xlsfonts
wynik? Czy można wiedzieć, która aplikacja ma problemy w systemie?Odpowiedzi:
Zgodnie z dokumentacją XLoadFont zapytanie z
'*'
powinno zwrócić dowolne dopasowanieFont
.ltrace
zrzuca wywołania do bibliotek dostderr
. Jeśli porównaszltrace
wyniki pod kątem poprawnego i nieudanego wykonania, powinieneś zgadnąć, jaka czcionka została użyta z działającego systemu.Opcją jest także porównanie wyników
xlsfonts
ifc-list
poleceń. W razie wątpliwości wywołaniefc-cache -fv
może pomóc, jeśli pamięć podręczna została uszkodzona.źródło
xlsfonts
ifc-list
nie doszłoby do skutku z odpowiednim komunikatem o błędzie, prawda? Jeśli tak, myślę, że możesz zaakceptować moją odpowiedź jako właściwy sposób zdiagnozowania zgłoszonego problemuxlsfonts
nie istnieje na moim komputerze ifc-list
wydaje się, że nie pokazuje żadnego błędu, o ile mogę powiedzieć. Po prostu drukuje ton „nazw plików: informacje”.