В приложении C ++ на SunOS произошла утечка памяти.Как его найти?

StackOverflow https://stackoverflow.com/questions/1366470

  •  21-09-2019
  •  | 
  •  

Вопрос

я только что приземлился на Суносе:

$ uname -a
SunOS sunfi95 5.9 Generic_122300-13 sun4u sparc SUNW,Sun-Fire-880

и иметь Солнечную студию:

$ CC -V
CC: Sun C++ 5.8 2005/10/13

Как я могу найти ссылки на память в коде?(dbx в данном случае не является опцией).Valgrind не работает в системах sparc, единственное решение, которое приходит мне в голову, - это использовать какую-нибудь умную библиотеку, которая будет перегружать new и delete и подсчитывать, сколько раз они вызывались.Кто-нибудь знает что-нибудь похожее на лицензию BSD?

Это было полезно?

Решение

В Sun OS вы можете использовать Очищать, или попробуйте портировать (как правило, вы также портируете утечку) свою программу в Unix / Linux и используйте валгринд чтобы найти утечку.

Другие советы

DTrace может быть очень полезен для определения того, что происходит в приложениях Solaris.

Вот пример того, как использовать его от Sun.

Я думаю, что есть бесплатные библиотеки, но мы используем Purify на Solaris, который работает хорошо.

Вы также можете использовать приложение под названием проверка cppcheck для обнаружения утечек памяти, а также ряда других проблем.Это бесплатный продукт с открытым исходным кодом.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top