Я не знаю, что здесь думать...
У нас есть компонент, который работает как служба. Он отлично работает на моей локальной машине, но на какой-то другой машине (на обеих машинных операционных системах равны 2 ГБ) он начинает генерировать исключения bad_alloc во второй и последующие дни. Дело в том, что использование памяти в процессе остается неизменным на уровне примерно 50 Мб. Другая странная вещь заключается в том, что с помощью отслеживания сообщений мы локализуем исключение, которое должно быть выбрано из объекта stringstream, который делает, но вставляет в поток не более 1-2 Кбайт данных. Мы используем STL-порт, если это имеет значение.
Теперь, когда вы получаете исключение bad_alloc, вы считаете, что это утечка памяти. Но all наши ручные распределения переносятся в интеллектуальный указатель. Кроме того, я не могу понять, как объект stringstream не хватает памяти, когда весь процесс использует только ~ 50Mb (использование памяти остается приблизительно постоянным (и уверенно не растет) изо дня в день).
Я не могу предоставить вам код, потому что проект действительно большой, а часть, которая генерирует исключение, действительно ничего не делает, кроме создания потока строк и < некоторые данные, а затем запишите его.
Итак, мой вопрос... Как может произойти утечка памяти /bad _alloc, когда процесс использует только память 50 МБ из 2 ГБ? Какие еще дикие предположения вы имеете относительно того, что может быть неправильным?
Спасибо заранее, я знаю, что вопрос неопределенный и т.д., я просто отчаянный, и я изо всех сил старался объяснить проблему.