Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Crash on cout << string
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть многопоточный tcp сервер, который периодически вылетает. С помощью "Debug Diagnostic Tool" на реальных рабочих данных удалось поймать данную ситуацию. Вот стек вызовов (картинка для сохранения форматирования): Строчка 269 процедуры и сама ClientThreadProc(), где происходит сбой, выглядят так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Сообщение об ошибке, которое генерирует Visual Studio по dmp файлуUnhandled exception at 0x005341C6 (Device_Server_Dbg.exe) in Device_Server_Dbg__PID__5912__Date__12_15_2013__Time_03_06_53PM__531__Second_Chance_Exception_C0000005.dmp: 0xC0000005: Access violation writing location 0x00000000. Помогите пожалуйста разобраться с данной ошибкой. Я не могу понять, почему sputc() генерирует ошибку. Может дело в многопоточности и общем ресурсе - консоли? Но в данном случае происходит только чтение и далее посимвольный вывод строки в консоль. Скорее бы символы id из разных потоков стали перемешиваться при выводе, чем возникала бы ошибка. Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 05:48 |
|
||
|
Crash on cout << string
|
|||
|---|---|---|---|
|
#18+
Винда? Консоль? Потоки? Сервер? И ты еще хочешь чтобы все это работало? Мечтатель... У виндовых приложений консоль это дополнительная, не обязательная фича. Чтобы в нее успешно писать, надо либо самому позаботиться о существовании консоли, либо изначально собирать приложение как консольное и жить в одном единственном потоке. Пиши в файл. Отправляй текст не в cout, а открывай файл и пиши в него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 07:45 |
|
||
|
Crash on cout << string
|
|||
|---|---|---|---|
|
#18+
White OwlВинда? Консоль? Потоки? Сервер? И ты еще хочешь чтобы все это работало? Мечтатель... Да! Да! Да! Да! Да! На самом деле вывод в консоль используется только в процессе отладки приложения. Приложение консольное Win32. В релиз версии только основной поток выводит шапку-заголовок приложения и все. Можно и файл, но причина данной ошибки действительно в работе с консолью из разных потоков? А если блокировать доступ к консоли, например, критической секцией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 07:51 |
|
||
|
Crash on cout << string
|
|||
|---|---|---|---|
|
#18+
YedМожно и файл, но причина данной ошибки действительно в работе с консолью из разных потоков? А если блокировать доступ к консоли, например, критической секцией?Да там не проблема доступа. В винде stdout может просто отсутствовать у вторичных процессов и потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 08:47 |
|
||
|
Crash on cout << string
|
|||
|---|---|---|---|
|
#18+
White OwlДа там не проблема доступа. В винде stdout может просто отсутствовать у вторичных процессов и потоков. спасибо! буду разбираться подробнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 14:22 |
|
||
|
Crash on cout << string
|
|||
|---|---|---|---|
|
#18+
White OwlВ винде stdout может просто отсутствовать у вторичных процессов и потоков. Отсутствие stdout не вызывает ошибку записи в нулевой адрес. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 15:23 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=68&tid=2019816]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 288ms |
| total: | 426ms |

| 0 / 0 |
