Хорошо, я столкнулся с ошибкой, которая просто сбила меня с толку. Я ищу идеи о том, что я мог бы расследовать, потому что сейчас у меня ничего нет. Это выглядит примерно так:
У меня есть отдельное Java-приложение, которому иногда нужно переключать том линейного входа компьютера, на котором он работает (машина WinXP). Это делается путем вызова пары внешних исполняемых файлов (написанных на VB6 *), которые могут получать и устанавливать различные тома компонентов. (Они могут работать с линейным входом, микрофоном, Wave, CD и основным регулятором громкости.)
Есть несколько сотен устройств, работающих на аппаратном обеспечении (компьютеры Dell), которые предоставлены и контролируются моей компанией. По крайней мере несколько десятков клиентов используют эту функцию, и она отлично работает - за исключением одного экземпляра.
Для этой одной проблемной машины она просто не работает. Я наблюдаю за ползунками громкости, когда приложение работает, и когда предполагается, что громкость падает, они остаются на месте. Когда я проверяю файл журнала приложения, он не выдает ошибок, и , кажется, выполняет код, который сбрасывает объем. Когда я запускаю исполняемые файлы из командной строки, они отлично работают.
Я не могу ручаться за то, что эта машина на 100% идентична всем тем, которые ведут себя должным образом, но мы уже давно покупаем одну и ту же линию Деллса; как минимум, это очень, очень похоже.
Итак, превращая мое замешательство в пулевой список:
- Если я делаю что-то глупое в коде Java (т.е. не очищаю мои буферы STDOUT / STDERR), почему это проблема только на этом компьютере?
- Если в исполняемых файлах VB6 что-то не работает, почему они работают на любой другой машине и на этой машине из командной строки?
- Если на этом компьютере есть какая-то странная аппаратная странность, то какая такая странность может привести к сбою исполняемых файлов регулятора громкости только при вызове из приложения Java?
Я очень смущен. Я не люблю, когда меня путают. У кого-нибудь есть предложения, которые могут привести к моему просветлению? **
- * - Я знаю, я знаю, VB6, 1998 звонили, и они хотят вернуть свой устаревший проприетарный генератор ошибок и т. Д. Не было моего решения. Но код работает. Обычно.
- ** - Вставьте здесь шутку о буддизме.
Обновление правки: Возможно, служба поддержки клиентов наткнулась на что-то; это может быть связано с настройками конфигурации клиента в базе данных. Новые данные свидетельствуют о том, что либо что-то неправильно настроено для этого клиента, либо мое программное обеспечение делает что-то глупое в ответ на конкретную конфигурацию. И проблема может быть более распространенной, чем мы думали, потому что эта особенность используется не так часто, как я думал.
Отвечая на комментарии:
- Отладчик: теоретически возможен, но выглядит как головная боль, учитывая нашу настройку.
- High Verbosity Logging, Java: Хорошая идея, особенно если учесть, что проблема может быть более распространенной, чем я изначально полагал. Пора начать пересматривать некоторые предположения. И, возможно, клубить их. Как детские тюлени.
- High Verbosity Logging, VB6: возможность; нужно будет свернуть в протоколирование Java с высокой степенью детализации, чтобы перехватить вывод, так как мой VB6-fu настолько плачевно слаб, что я не знаю, как выводить текст в файл. Но, да, знание того, вызывается ли сценарий или нет, было бы полезно.
- Окно просмотра событий: не знаком с этим инструментом. Возможно, придется исправить это.
- ПУТЬ проблема: не кажется вероятным; код Java создает относительный путь к исполняемому файлу, который не выглядит так, как будто он полагается на какие-либо переменные среды.
Благодарю за предложения, которые предоставили люди; по крайней мере, мой мозг двигается в направлении, которое кажется многообещающим.
Решение Редактировать: И победитель ... Это не ошибка, это особенность! Особенность пошла ужасно, ужасно неправильно. Функция, которая теперь будет кастрирована, чтобы перестать беспокоить нас.
Пакет недопустимых предположений не позволил мне увидеть это раньше, и не в последнюю очередь это было так: «Мне не нужно обрабатывать код большим количеством операторов отладки - операторы, которые уже есть, говорят мне все, что мне нужно знать !» DaDaDom, если вы хотите превратить свой комментарий в ответ, для вас есть блестящая галочка.
Спасибо всем, кто присоединился к нам с предложением. Теперь, если вы меня извините, моя голова опаздывает на встречу с моим столом.