Closed ghost closed 6 years ago
Возможно мне не хватает какого-то фреймворка/библиотеки? Вряд ли, т.к. в таком случае ничего бы не работало и не запускалось.
На моей машине win8.1 баг не воспроизводится с файлом такой же длины. Код исключения 0xc0000374 означает Heap Corruption, т.е. какой-то модуль испортил память процесса.
Попробуйте запустить эту же команду для другого аудио устройства, например "--dev=1" ? fmedia --debug --dev=1 ../Sounds/Hello.wav
Попробуйте сконвертировать файл в .flac и запустить воспроизведение, будет ли проблема при этом? fmedia ../Sounds/Hello.wav -o .flac fmedia Hello.flac
Есть ли у вас возможность приаттачить или выслать мне на почту этот самый .wav файл?
P.S. Вы используете fmedia x86 или x64 версию?
Независимо от устройства всегда после воспроизведения пауза в примерно 5 секунд до закрытия приложения, затем с некоторой вероятностью ошибка 0xc0000374
Конвертация в flac не помогает
Файл прикрепил Hello.zip
Пробовал и x86 и x64, также пробовал более ранние версии, не помогло
Возможно что-то с железом, но в целом система казалась стабильной, проверить на другой возможности нет.
Понятно, как и следовало ожидать, конкретно с этим файлом у меня fmedia не падает. Возможно связано именно с windows10. А можете посмотреть под дебаггером? Можно сделать так:
Скачайте gdb для windows отсюда (или с другого сайта): ftp://ftp.equation.com/gdb/64/gdb.exe
Скачайте дебаг символы для fmedia: http://fmedia.firmdev.com/fmedia-0.29.1-win-x64-debug.zip
Распакуйте все файлы .debug в ту папку, где установлен fmedia.
Запустите fmedia под gdb: gdb --args fmedia Hello.wav
Введите команду для запуска приложения:
(gdb) r
Когда приложение упадёт, введите команду: (gdb) thread apply all bt
или можно просто
(gdb) bt
Получим call stack. Будем надеяться, что там будет что-то полезное для того, чтобы понять, где именно падает.
TL;DR: без указания --dev
зависания и падений нет.
Под GDB приложение не падает и не зависает.
(gdb) r
Starting program: D:\fmedia\fmedia.exe ../Sounds/Hello.wav
[New Thread 1332.0x7f4]
warning: FTH: (1332): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***
[New Thread 1332.0x1634]
[New Thread 1332.0xabc]
[New Thread 1332.0x2694]
fmedia v0.29
[New Thread 1332.0x18a4]
" - " ../Sounds/Hello.wav 0.04 MB, 0:00.878 (19,360 samples), 353 kbps, WAVE, 22050 Hz, int16, mono
[......................................................................] 0:00 / 0:00[New Thread 1332.0x219c]
[Thread 1332.0x219c exited with code 4294967295]
[Thread 1332.0x1634 exited with code 0]
[Thread 1332.0xabc exited with code 0]
[Thread 1332.0x2694 exited with code 0]
[Thread 1332.0x18a4 exited with code 0]
[Inferior 1 (process 1332) exited normally]
(gdb)
Смущает правда Thread 1332.0x219c exited with code 4294967295
.
UPD: Оно не падало из-за того, что не указал аргумент --dev.
(gdb) r
Starting program: D:\fmedia\fmedia.exe "--dev=5" ../Sounds/Hello.wav
[New Thread 1040.0x251c]
warning: FTH: (1040): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***
[New Thread 1040.0x1020]
[New Thread 1040.0x2564]
[New Thread 1040.0x2408]
warning: Can not parse XML library list; XML support was disabled at compile time
fmedia v0.29
[New Thread 1040.0x28f4]
" - " ../Sounds/Hello.wav 0.04 MB, 0:00.878 (19,360 samples), 353 kbps, WAVE, 22050 Hz, int16, mono
[......................................................................] 0:00 / 0:00[New Thread 1040.0x2b90]
[Thread 1040.0x2b90 exited with code 4294967295]
Thread 5 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1040.0x28f4]
0x0000000069b45de7 in ?? ()
(gdb) q
A debugging session is active.
Inferior 1 [process 1040] will be killed.
Quit anyway? (y or n) y
Зависает на строке [Thread 1040.0x2b90 exited with code 4294967295]
.
Результаты thread apply all bt
:
(gdb) thread apply all bt
Thread 5 (Thread 3340.0x20d0):
#0 0x0000000069b45de7 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 4 (Thread 3340.0xaac):
#0 0x00007ff92e8e8c34 in ?? ()
#1 0x00007ff92e881553 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Thread 3 (Thread 3340.0x26d0):
#0 0x00007ff92e8e8c34 in ?? ()
#1 0x00007ff92e881553 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Thread 2 (Thread 3340.0x1394):
#0 0x00007ff92e8e8c34 in ?? ()
#1 0x00007ff92e881553 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Thread 1 (Thread 3340.0x22b4):
#0 0x00007ff92e8e5ef4 in ?? ()
#1 0x00007ff92af3dd20 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) set $pc = *(void **)$rsp
(gdb) set $rsp = $rsp + 8
(gdb) bt
#0 0x0000000000000001 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
На всякий случай список девайсов:
D:\fmedia>fmedia --list-dev
fmedia v0.29
Playback/Loopback:
device #1: XF270HU-4 (NVIDIA High Definition Audio)
device #2: ╨ж╨╕╤Д╤А╨╛╨▓╨╛╨╡ ╨░╤Г╨┤╨╕╨╛ (S/PDIF) (2- ╨г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨╛ ╤Б ╨┐╨╛╨┤╨┤╨╡╤А╨╢╨║╨╛╨╣ High Definition Audio)
device #3: CABLE Input (VB-Audio Virtual Cable)
device #4: SPDIF-Out (Sound Blaster X-Fi Surround 5.1 Pro)
device #5: Speaker (Sound Blaster X-Fi Surround 5.1 Pro)
Capture:
device #1: CABLE Output (VB-Audio Virtual Cable)
device #2: Line-In/Mic-In (Sound Blaster X-Fi Surround 5.1 Pro)
device #3: What U Hear (Sound Blaster X-Fi Surround 5.1 Pro)
UPD
--dev
: no-dev.txtЛоги отличаются утечкой (без --dev
от c --dev
):
Error #7: LEAK 28 direct bytes 0x0000000002e2c250-0x0000000002e2c26c + 0 indirect bytes
# 0 replace_RtlAllocateHeap [d:\drmemory_package\common\alloc_replace.c:3770]
# 1 AcLayers.dll!NotifyShims +0x52a2 (0x00007ff8fb7b6fa3 <AcLayers.dll+0x6fa3>)
# 2 __tmainCRTStartup [../crt/crtexe.c:337]
# 3 AEPIC.dll!? +0x0 (0x00007ff91aa3201a <AEPIC.dll+0x201a>)
# 4 AEPIC.dll!? +0x0 (0x00007ff91aa31f89 <AEPIC.dll+0x1f89>)
# 5 AEPIC.dll!? +0x0 (0x00007ff91aa31f39 <AEPIC.dll+0x1f39>)
# 6 AEPIC.dll!PicRetrieveFileInfo +0x400 (0x00007ff91aa32de1 <AEPIC.dll+0x2de1>)
# 7 wer.dll!WerpAuxmdFree +0x68e86 (0x00007ff91e2cecc7 <wer.dll+0x7ecc7>)
# 8 wer.dll!WerpAuxmdFree +0x68a59 (0x00007ff91e2ce89a <wer.dll+0x7e89a>)
# 9 wer.dll!WerpAuxmdFree +0x6924a (0x00007ff91e2cf08b <wer.dll+0x7f08b>)
#10 wer.dll!WerpAuxmdFree +0x5bff2 (0x00007ff91e2c1e33 <wer.dll+0x71e33>)
#11 wer.dll!WerReportCreate +0x42d (0x00007ff91e257a2e <wer.dll+0x7a2e>)
Попробуйте пожалуйста с новой версией, v0.30 ? Там была исправлена проблема с таймерами на Windows, таймер трэды создавались и не закрывались правильно, что приводило к зависаниям. Возможно это как раз то самое.
Про утечку памяти - посмотрю и проверю это в ближайшее время, спасибо! Но это вряд ли может привести к сегфолту.
На всякий случай приаттачил новые дебаг симоволы. fmedia-0.30.2-win-x64-debug.zip
P.S.
А output команды
fmedia --list-dev >LOG
правильно показывает русские символы в файле?
OS: Windows 10
Звук воспроизводится, приложение зависает, и через примерно 5 секунд ошибка Windows:
Возможно мне не хватает какого-то фреймворка/библиотеки?