170 похожих чатов

31 ответов

30 просмотров

Думать? Хотя не, это точно не вариант

ssf-Defs Автор вопроса
Dmitriy [Отпуск]
Думать? Хотя не, это точно не вариант

Я бы отказался от такого варианта

ssf Defs
Я бы отказался от такого варианта

Оно и видно... Тесты не имеют отношения к допустимым ошибкам в рантайме (вроде неверного пользовательского ввода). Ассерты - тем более

ssf-Defs Автор вопроса
Dmitriy [Отпуск]
Оно и видно... Тесты не имеют отношения к допустим...

Создать искусственное место, где ошибку можно проанализировать, не?

ssf Defs
Создать искусственное место, где ошибку можно проа...

Ок, память не выделилась, "ошибку" нашли. Чинить невозможно - увольняемся

Вот это кстати вообще прекрасно, учитывая что в релиз-билд ассерт не попадает...

Пашечка
Вот это кстати вообще прекрасно, учитывая что в ре...

Ну разные ассерты бывают, можно и свой написать с логированием и завершением программы

我が名はレギオン
Ну разные ассерты бывают, можно и свой написать с ...

Справедливо. Но вернёмся к OOM. Логирование требует аллокацию сообщения. А как это сделать, если памяти нет?) Или надо записать инфу в файл, а у нас экспешн из-за того, что жёсткий диск с данными отвалился физически. Куда логировать?)

Пашечка
Справедливо. Но вернёмся к OOM. Логирование требуе...

В системный журнал, если есть такая возможность

Пашечка
Справедливо. Но вернёмся к OOM. Логирование требуе...

Если такие проблемы с памятью, то никуда, хотя кажется мне, что можно на месте освободить какую-то память, чтобы залогировать. Пользователь что ли будет сидеть над зависшим приложением, потому что вы обрабатываете эксешпен от нью? Ну нет памяти, что дальше? Ждать пока появится?

我が名はレギオン
Если такие проблемы с памятью, то никуда, хотя каж...

Вот представь себе твою любимую IDE, ты пытаешься открыть окно с настройками, а у тебя закончилась память, окошко не аллоцировалось, эксепшн от new не отловился и всё IDE упало, включая последние три минуты работы, где ты написал самый гениальный код в своей жизни, а автосохранение стоит с интервалом в 5 минут, то есть, гениальный код утерян. А могло быть просто, что даже с пустым try-catch эксепшн отловился и окошко тупо не создалось, при этом всё приложение не упало. Более того, возможны по мере раскручивания стека ещё и чуть-чуть памяти освободилось из-за вызванных деструкторов, и можно вывести сообщение об OOM.

Пашечка
Вот представь себе твою любимую IDE, ты пытаешься ...

Под завершением имелось введу не terminate, все деструкторы отработают, среди которых и будет где-то там то сохранение файла. Ситуация, когда нельзя создать окно это критическая ситуация для иде, нельзя дальше продолжать работу, сейчас нельзя создать окно, через 5 минут нельзя будет сохранить данные

我が名はレギオン
Под завершением имелось введу не terminate, все де...

Вопрос очень тонкий: а падать ли, скажем, если не удалось сохранить файл?)

我が名はレギオン
Под завершением имелось введу не terminate, все де...

Ситуация критичная, да. Поэтому падать нельзя! Может я пока оставлю всё как есть, а сам сбегаю за бумажкой и ручкой и быстро перепишу код с экрана на бумажку! Это ведь самый лучший код в моей жизни! Его потеря смерти подобна! А вообще, сколько боли было у студентов, когда диплом уничтожался почти весь после бессонной ночи из-за вот таких вот багов? Пожалейте студентов, пишите правильное и хорошее ПО)

Dmitriy [Отпуск]
Вопрос очень тонкий: а падать ли, скажем, если не ...

Зависит от причины, можно предложить пользователю выбрать другую директорию в случае проблем с какими-то правами/местом

Пашечка
Ситуация критичная, да. Поэтому падать нельзя! Мож...

Я говорю о реальных ситуациях, пользователь скорее всего начнет спамить открытие окна, когда оно не откроется после первой попытки, потом начнет спамить мышкой по приложению, когда оно зависнет, потом его убьет система и ничего уже точно не будет сохранено

Торчь Процессор
CTRL+S каждые 2 секунды, чего сложного

Под кнопку S попала чипсинка и она не нажимается.

Пашечка
Под кнопку S попала чипсинка и она не нажимается.

вешаем автосохранение на... любое событие с клавы

🐈
вешаем автосохранение на... любое событие с клавы

Чтобы (в обычной ситуации) заскочивший на клаву кот уничтожил мой прекрасный код?

Пашечка
Чтобы (в обычной ситуации) заскочивший на клаву ко...

окей. доббавим к автосохранению коммит. и пуш

🐈
окей. доббавим к автосохранению коммит. и пуш

Ну, тут мне уже нечего возразить) Только пуш лучше убрать, всё же, а при закрытии IDE настроить автосквош.

Пашечка
Ну, тут мне уже нечего возразить) Только пуш лучше...

мало ли твой прекрасный кот уничтожит твой прекрасный комп?

🐈
но умеет писать

Нет, он умеет только галопом скакать по клавиатуре

Пашечка
Нет, он умеет только галопом скакать по клавиатуре

окей. комп может быть уничтожен. метиорит в окно залетел.

🐈
окей. комп может быть уничтожен. метиорит в окно з...

Тогда код последнее, что меня волнует. Надо кота спасать!

Пашечка
Под кнопку S попала чипсинка и она не нажимается.

Ну пусть умирает тогда, кто вообще не делает бэкапы свой работы.

Пашечка
Справедливо. Но вернёмся к OOM. Логирование требуе...

>А как это сделать, если памяти нет?) Юзерспейсные обработчики нехватки памяти реагируют чуть заранее - когда память еще есть

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта