Керівництво користувача wine

Глава V. Усунення несправностей і повідомлення про помилки

5.1. Що робити, якщо програма не працює?

Бувають випадки, коли ви перепробували все, щоб змусити цю прокляту програму заробити на даній версії Wine. Чи не турбуйтеся, ми завжди тут, щоб допомогти вам. (Іншими словами: "Скільки дасте?")

5.1.1. Перевірте конфігурацію своєї Wine

Подивіться висновок команди $ wine --version, щоб переконатися, що у вас новітня версія Wine. Запустіть winecfg і подивіться на установки, щоб переконатися, що вони виглядають нормально. перевірте

/.wine/dosdevices, щоб переконатися що c: вказує куди потрібно.

5.1.2. Спробуйте різні версії Windows

У деяких випадках зміна версії Windows може допомогти.

5.1.3. Використовуйте різні шляхи (paths) для запуску

Це теж іноді допомагає. Спробуйте як wine prg.exe, так і wine x: \\ full \\ path \\ to \\ prg.exe

5.1.4. Експериментуйте з налаштуванням DLL

Запустіть WINEDEBUG = + loaddll, щоб з'ясувати, які DLL використовуються, і чи є вони "рідними" або вбудованими. Потім переконайтеся, що у вас встановлені правильні "рідні" файли бібліотек у вашій директорії C: \ windows \ system і поекспериментуйте настройками пристрою завантаження DLL в командному рядку, або в файлі конфігурації.

5.1.5. Перевірте робоче оточення!

Ще ідея: чи не може робоче оточення Wine бути зіпсованим? Переконайтеся, що все гаразд з пакетами, від яких залежить робота Wine (gcc, glibc, X libraries, OpenGL (!).).

5.1.6. Використовуйте інший режим графічного інтерфейсу

Проінструктуйте Wine допомогою конфігураційного файлу використовувати або desktop mode (режим робочого столу), або managed mode (керований режим), або потворний "нормальний" (normal) режим. Це теж може допомогти.

5.1.7. Перевірте додаток!

Може бути, ваш додаток має захист від копіювання? Багато видів таких захистів поки не працюють під Wine. Деякі, можливо, запрацюють в майбутньому. (Рівень CD-ROM до сих пір не полнофункціонален).

5.1.8. Змініть оточення Wine

Запуск програми при наявності Windows розділу може драматично відрізнятися від такого при відсутності Windows розділу. Налаштуйте Wine на дії, протилежні тому, що були зазвичай. Також встановіть DCOM98 або DCOM95. Це може бути дуже корисно.

5.1.9. переконфигурирует Wine

Іноді процес інсталяції Wine змінюється, і нові версії Wine зважають на ці змінами. Це особливо ймовірно, якщо ваша установка проведена давно. перейменуйте директорію

/.wine з метою резервного копіювання. Розпочніть процес установки, рекомендований для вашої версії Wine, щоб створити нову конфігурацію. Для порівняння використовуйте стару директорію

/.wine. Для установок Wine з вихідних застосовуйте для конфігурації Wine скрипт tools / wineinstall від імені користувача. Це цілком безпечна операція. Пізніше ви зможете видалити нову директорію

/.wine, і перейменувати назад стару.

5.1.10. Слідкуйте за сторонньою інформацією

Цілком можливо, що хтось вже робив те, що ви намагаєтеся зробити зараз. Вам можуть допомогти такі ресурси:

Frank's Corner має список додатків з детальними інструкціями по їх установці. Подальша допомога може знайтися на форумах користувачів.

Може допомогти Google. якщо вміти ним користуватися. Корисно буває шукати в Google Groups. конкретно в групі comp.emulators.ms-windows.wine

Існує IRC канал для Wine - Freenode.net. Ви можете потрапити туди, використовуючи будь-який IRC клієнт, наприклад Xchat. Ось необхідні настройки:
server = irc.freenode.net, port = 6667
і channel = #winehq

Якщо ваша програма вимагає Visual Basic Runtime Environment, то ви можете завантажити його з цього сайту Мікрософт.

Якщо вам бракує DLL, наприклад mfc42, можете знайти їх на сайті www.dll-files.com

5.1.11. Шукайте причину!

Наступним кроком, який варто зробити, є пошук причини проблеми. Спектр можливих причин досить широкий - від простої помилки в конфігурації до повної непрацездатності Wine. Наступний розділ описує, як створити файл зі звітом про помилку, і як почати шукати несправність. Налагодження можливості Wine описуються в Wine Developers Guide (керівництво для розробників).

5.2. Як послати звіт про помилку.

Будь ласка, повідомляйте про помилки і супутню інформацію на сайт Wine Bugzilla. Будь ласка, переглядайте базу даних Bugzilla, щоб з'ясувати, чи не було вже звітів з даної проблеми. Якщо такі вже були, будь ласка, додавайте вашу інформацію до первісного звіту.

5.2.1 Звіти про помилки

Ось кілька простих порад, як зробити ваш звіт більш змістовним, і тим підвищити ймовірність відповіді і виправлення помилки:

1. Увімкніть якомога більше інформації, що відноситься до справи.

Це означає, що нам потрібно більше інформації, ніж просто: "Мій MS Word" падає ", коли б я його не запускав. Ви не знаєте, чому?". Додайте, як мінімум, наступну інформацію:

  • Яку версію Wine ви використовуєте (команда: wine --version)
  • Назва вашої операційної системи, дистрибутив і його версію (наприклад, Linux Red Hat 7.2)
  • Який компілятор був використаний, його версію (команда: gcc -v). Якщо ви не компілювали Wine, назва пакета, і місце, звідки його взяли.
  • Версія Windows, якщо така використовується з Wine. Якщо Windows не використовується, то згадайте про це.
  • Назва і номер версії програми, яку ви намагаєтеся запустити, а також URL, де програма завантажена (якщо такий є).
  • Точна команда, якій ви запускаєте програму Wine. Наприклад: wine "C: \ Program Files \ Test \ program.exe"
  • Конкретні кроки, за допомогою яких можна повторити помилку.
  • Будь-яка додаткова інформація, що може, на вашу думку, ставитися до справи, така як версія іксів (в разі проблем з іксами), версія libc та інше.
  • 2. Проженете програму зі змінною оточення WINEDEBUG. Наприклад, WINEDEBUG = + relay wine sol.exe

    Це призведе до висновку на консоль додаткової інформації, яка може бути корисна при налагодженні програми. Також це сповільнить відтворення програми. Бувають випадки, коли помилка, мабуть, зникала при використанні опції + relay. Вкажете це в вашому звіті.

    5.2.2. Аварійне завершення програми

    Якщо Wine аварійно відмовляє під час виконання вашої програми, нам важливо мати інформацію про це, щоб спробувати зрозуміти причину відмови. Звіт може займати багато місця (кілька Мб), але все ж краще зберегти його у файлі. Коли з'явиться запрошення Wine-dbg>. надрукуйте quit.

    Ви можете спробувати + relay, + snoop замість + relay, але, будь ласка, пам'ятайте, що + snoop досить нестабільний і часто викликає відмова раніше, ніж просто + relay. Звіт з відмовою в коді + snoop в більшості випадків даремний! Можна також підключати інші параметри, в залежності від природи проблеми, яку ви досліджуєте. Для отримання повного списку параметрів дивіться man-сторінку до Wine.

    Для того щоб вивести запис з історією подій (трасування лог), використовуйте один з наступних методів:

    5.2.2.1 Простий шлях

    1. Цей метод дозволяє навіть повного новачкові отримати якісний трасувальні лог подій, що призвели до аварійного завершення програми.

    Щоб скористатися цим методом, на вашому комп'ютері повинен бути встановлений мову програмування perl. Щоб дізнатися, чи є він у вас, наберіть команду: which perl. Якщо відповідь щось на кшталт: / usr / bin / perl, то ви можете працювати. В іншому випадку переходьте до розділу "Важкий шлях". Якщо ви не впевнені, все-таки виконайте роботу. Коли ви спробуєте запустити скрипт, то стане вельми очевидно, якщо у вас не встановлений perl.

    2. Змініть директорію на / шлях-до-wine> / tools.

    3. Наберіть. /bug_report.pl і дотримуйтесь вказівок.

    5.2.2.2. важкий шлях

    Найчастіше тільки останні 100 (або близько того) рядків трасування балки потрібні, щоб з'ясувати, де програма аварійно завершилася. Для того щоб отримати ці останні 100 рядків, ми повинні виконати наступне:

    1. Переспрямувати весь висновок програми WINEDEBUG в файл.

    2. Відокремити останні 100 рядків в інший файл за допомогою команди: tail.

    Це можна зробити одним із таких способів.

    Для всіх Шелл (оболонок):

    $ Echo quit | WINEDEBUG = + relay wine [other_options] program_name> filename.out; $ Tail -n 100 filename.out> report_file

    (Ця команда запише повідомлення тільки в файл і потім автоматично завершиться. Цю команду добре використовувати, так як Wine видає стільки налагоджувальних повідомлень, що вони переповнюють термінал, пожираючи процесорні цикли).

    tcsh і інші csh-подібні шелли:

    $ WINEDEBUG = + relay wine [other_options] program_name | tee filename.out; $ Tail -n 100 filename.out> report_file

    bash і інші sh-подібні шелли:

    $ WINEDEBUG = + relay wine [other_options] program_name 2> 1 | tee filename.out; $ Tail -n 100 filename.out> report_file

    Файл report_file тепер містить останні сто рядків виводу налагоджувача включаючи register dump і backtrace, які є найціннішими масивами інформації. Будь ласка, не видаляйте цю частину, навіть якщо не розумієте, що вона означає.

    Пошліть звіт на Wine Bugzilla. Необхідно прикріпити файл report_file. Разом з має відношення до справи інформацією, про те, як ви його створили. Не вставляйте текст файлу в текст самого звіту про ошібкt - він досить великий і сплутає звіт. Якщо ви правильно зробите всю цю процедуру, ваші шанси на отримання відповіді з допомогою досить великі.

    Будь ласка, переглядайте базу даних Bugzilla, щоб з'ясувати, чи не було вже звітів з даної проблеми. Якщо такі вже були, будь ласка, додавайте ваш файл report_file і іншу інформацію до первісного звіту.

    Схожі статті