У меня есть двоичный файл C++ размером 190 МБ. Когда я помещаю этот двоичный файл в dbx и пытаюсь создать точку останова, dbx зависает. В то время как dbx висит, я заметил, что его память быстро выросла до более чем 10 ГБ. TotalView позволяет устанавливать точки останова; однако все отображаемые данные являются фиктивными. Я успешно отлаживал много других небольших двоичных файлов, поэтому моя догадка - это большой размер этого двоичного файла.Большой исполняемый файл вызывает отладчики для зависания
Двоичный: ELF 32-разрядный MSB исполняемый SPARC32PLUS Версия 1, V8 + Обязательный, динамически связанный, не разделенный.
Компилятор: CC: Sun C++ 5.9 SunOS_sparc 2007/05/03.
Dbx: 7.6 SunOS_sparc 2007/05/03.
TotalView: 8.2.0-0
Операционная система: Solaris 10
Как я использую DBX:
dbx mybinary
stop at Something.cc:170
Dbx никогда не возвращается из этой команды, и я должен в конечном итоге убить DBX из отдельной терминала ,
Я пробовал несколько вещей без успеха:
1. Переключился на связывание в большинстве библиотек динамически, что уменьшило двоичный размер до 19 МБ.
2. Пробовал на Solaris x86.
3. Составлено программное обеспечение как 64 бит.
Кто-нибудь знает, что может случиться, и как решить проблему?
Какая версия компиляторов и какая версия dbx? dbx -V CC -V Просто для проверки: dbx зависает и начинает расти в ответ на то, что вы набрали команду «stop»? Значит, вам даже не нужно запускать программу в отладчике? –
Я ответил на ваш вопрос, объяснив свой оригинальный пост. – Hitman
Одна хорошая вещь, чтобы попробовать загрузить последнюю версию Solaris Studio и попробовать это. http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.html Версия, которую вы используете, составляет 4,5 года. –