Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Проблема с памятью... Очень нужна помощь! Есть два потока, которые вместе "бьют" память: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Такой код без потоков работает идеально: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Синхронизация в очереди есть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Пожалуйста, объясните почему с потоками ничего не выходит.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 12:30 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
kir86975, Так сложно сказать, по коду вроде бы всё ок, если я не пропустил чего. Если расстреливается память, то можно поставить в отладчике прерывание по записи в этот участок памяти и таким образом отловить, где эта запись происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 15:51 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
По моему я пробовал. Но еще раз попробую и отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 16:12 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
На три раза просмотрел - нет тут проблем. Возможно они в той части кода, которая отсутствует. Вынеси этот код в отдельный проект, добавь проверки и добейся повтора проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 19:53 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
а может быть такое что проблема в компиляторе? Я делал это в VS2003. Давал другому человеку - он у себя запускал в VS2010, как я понял и сказал, что ошибок вообще никаких нет, что все отлично работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 15:09 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Dima T, это и так уже у меня отдельный проект, для проверки как раз добавления и извлечения из очереди ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 15:13 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
kir86975а может быть такое что проблема в компиляторе? Я делал это в VS2003. Давал другому человеку - он у себя запускал в VS2010, как я понял и сказал, что ошибок вообще никаких нет, что все отлично работает Ты оптимизацию выключаешь, когда собираешь ? Если нет, добейся, чтобы всё это не работало в релизной версии с отключенной оптимизацией и с собранной debug info. Тогда можно будет отлаживаться. А ещё лучше -- в дебажной версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 16:46 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
kir86975Dima T, это и так уже у меня отдельный проект, для проверки как раз добавления и извлечения из очереди ) Так давай весь код сюда, может кто-то и посмотрит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 16:47 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
MasterZiv, http://depositfiles.com/files/j28mdp3gk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 12:25 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Еще кое-что забыл сказать. У меня VS2003 установлен на WinXP, которая в свою очередь на виртуалке. Может быть проблема в виртуалке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 12:31 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
kir86975Может быть проблема в виртуалке? нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 12:54 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
У тебя простой пример просили, а там какой-то Stackwalker который не компилируется. MSVC 2015 Выкинул его, скомпилировалось, на консоли пусто, висит, что-то делает. Косяк как проявляется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 13:11 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
kir86975, для тестирования нужно побольше погонять, но главное - ты забыл указать, что компилировать с многопоточной CRT (/MT) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 13:20 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
CreateThread() замени на _beginthreadex() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 13:25 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
В общем все работает, только замечательно переполняется очередь (и ес-но память) и тогда уже вылетает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 14:13 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Dima T, я так понимаю менеджер памяти банально не знает что работает в мультипоточке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 14:24 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Siemargl, Возможно проблема действительно в /MT. Сейчас проверю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:16 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Dima T, _beginthreadex это ж просто вроде как обертка? Или какие-то преимущества дает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:17 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
kir86975Dima T, _beginthreadex это ж просто вроде как обертка? Или какие-то преимущества дает? инициализирует рантайм С/С++ для данного потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:18 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Dima T, StackWalker работать не должен, его просто можно закомментировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:19 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Dima T, CreateThread примерно ведь то же самое и делает, только поток сразу запускает на выполнение. Или просто в C++ вырвиглазно смотрится? Мне просто нужно использовать обязательно стандарт C++98. Но че-то я _beginthreadex в нем не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:22 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Siemargl, Переполнение памяти из-за очереди тоже возможно. Но у меня как правило валилось еще до No_memory. Т.е. что-то типа использование уже освобожденной памяти... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:26 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
Вот пример ошибки через некоторое время работы: Heap corruption detected at 00330860 HEAP[TestQueue.exe]: HEAP: Free Heap block 330858 modified at 330868 after it was freed Unhandled exception at 0x7c90120e in TestQueue.exe: User breakpoint. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:28 |
|
||
|
Проблема с памятью...
|
|||
|---|---|---|---|
|
#18+
kir86975Dima T, CreateThread примерно ведь то же самое и делает, только поток сразу запускает на выполнение. Или просто в C++ вырвиглазно смотрится? Мне просто нужно использовать обязательно стандарт C++98. Но че-то я _beginthreadex в нем не нашел. CreateThread() в стандарте тоже нет. Стандарт C++98 вообще не имеет стандартных методов создания потока. CreateThread() не инициализирует CRT. 8017066 Не уверен что тебе нужна эта инициализация, но хуже точно не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:29 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=38&tid=2018617]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 175ms |

| 0 / 0 |
