powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Программа аварийно завершается при превышение 4 Гб выделенной памяти
15 сообщений из 15, страница 1 из 1
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613347
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Debian 9.2.3 x64, Qt 5.10.1

Сейчас х64 компиляторы (Intel + gcc 6 и 7 версии) и х64 qmake. Ошибка появляется как в Release, так и в Debug сборке, как при запуске в режиме отладки, так и при обычном запуске.

В винде была такая проблема, но решилась изменением на x64- разрядный компилятор.

Как лечить?
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613348
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал с разными ключами компиляции (как с оптимизациями, так и без них)- ошибка не уходит.
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613370
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL, -m64 ?
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613372
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

например, у тебя контейнер, в котором ты выделяешь память, использует внутренний "короткий" счетчик этих элементов.
...
Попробуй в цикле просто вызывать new чего-то-там, наступит ли обломинго при гарантированном превышении 4Gb?
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613389
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLКак лечить?

Исследовать дамп не предлагать?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613394
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLDebian 9.2.3 x64, Qt 5.10.1

Сейчас х64 компиляторы (Intel + gcc 6 и 7 версии) и х64 qmake. Ошибка появляется как в Release, так и в Debug сборке, как при запуске в режиме отладки, так и при обычном запуске.

В винде была такая проблема, но решилась изменением на x64- разрядный компилятор.

Как лечить?

Отладчик запускать пробовал?
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613454
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devAlekseySQL, -m64 ?

Пробовал такие наборы опций:
GCC:
Код: plaintext
1.
QMAKE_CXXFLAGS += -Ofast -flto -march=native -mtune=native -m64


or
Код: plaintext
1.
QMAKE_CXXFLAGS += -O0 -m64



Intel:
Код: plaintext
1.
QMAKE_CXXFLAGS += -mtune=haswell -fast -m64


or
Код: plaintext
1.
QMAKE_CXXFLAGS += -O0 -m64
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613458
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivОтладчик запускать пробовал?

Разумеется, отладчик доходя до 4 ГБ отваливается.

Я читаю файлы с диска, так вот если файл, на котором происходит падение запустить один, то он хорошо обрабатывается и программа удачно завершается. Другими словами, ошибка не в этом файле, а в том, что с начала старта обработки накопилось 4ГБ выделенной памяти (я это вижу по размеру обработанных файлов).
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613461
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovИсследовать дамп не предлагать?..


Спасибо, но дамп обычно смотрят, если ошибка неизвестна, а у меня все понятно: приложение почему- то получается 32-ух разрядное. Надо настройки подкручивать какие- то...
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613474
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLу меня все понятно: приложение почему- то получается 32-ух разрядное.

Да ну? И каким же образом ты это выяснил?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613483
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В x64 есть какой-то предельный размер памяти выделяемой для одного процесса.
Конкретных значений для конкретных ОС не знаю, на практике сталкивался что виндовс дал выделить только 7 Гб при 32 Гб физической памяти. Думаю в линуксе это тоже как-то ограничено.
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613487
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВ x64 есть какой-то предельный размер памяти выделяемой для одного процесса.
Конкретных значений для конкретных ОС не знаю, на практике сталкивался что виндовс дал выделить только 7 Гб при 32 Гб физической памяти. Думаю в линуксе это тоже как-то ограничено.
Скорее всего "дал выделить одним куском".

AFAIK В ряде Unix'ов можно лимиты на процессы ставить, т.ч. хорошо было бы разобраться, что же у Т.С. на самом деле происходит и какие настройки ОС.

Но у меня кофе только растворимый, т.ч. гадание на кофейной гущи - это не ко мне
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613504
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччДAlekseySQL,

например, у тебя контейнер, в котором ты выделяешь память, использует внутренний "короткий" счетчик этих элементов.
...
Попробуй в цикле просто вызывать new чего-то-там, наступит ли обломинго при гарантированном превышении 4Gb?

Спасибо за наводку! В цикле память отлично выделяется!

Я удалил первые 4ГБ файлов и следующая ошибка возникала через 4,8 ГБ прочитанных файлов, а после удаления и этих 4,8 ГБ файлов- через 8,4 ГБ прочитанных файлов.

Так что отбой: ошибка в моем говно- коде :)
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613506
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevDima TВ x64 есть какой-то предельный размер памяти выделяемой для одного процесса.
Конкретных значений для конкретных ОС не знаю, на практике сталкивался что виндовс дал выделить только 7 Гб при 32 Гб физической памяти. Думаю в линуксе это тоже как-то ограничено.
Скорее всего "дал выделить одним куском".

AFAIK В ряде Unix'ов можно лимиты на процессы ставить, т.ч. хорошо было бы разобраться, что же у Т.С. на самом деле происходит и какие настройки ОС.

Но у меня кофе только растворимый, т.ч. гадание на кофейной гущи - это не ко мне

Попробовал 100 раз в цикле выделить и освободить кусками по 9 ГБ- отлично работает (у меня физической памяти 8ГБ и ограничение могло быть завязано на это значение). Так что это не ограничение операционной системы, а мои шаловливые ручки.
...
Рейтинг: 0 / 0
Программа аварийно завершается при превышение 4 Гб выделенной памяти
    #39613507
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если происходит исключение при выделении памяти с помощью new, то его можно перехватить
Код: plaintext
1.
2.
3.
4.
5.
	try {
...
	} catch (std::bad_alloc) {
		printf("\n\nFATAL ERROR: no memory\n");
	}
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Программа аварийно завершается при превышение 4 Гб выделенной памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]