2013-04-29 3 views
0

При попытке создать объект на C++ я столкнулся с странной ошибкой шины. Это мой GDB трассировку, когда сбой программы:Ошибка шины при попытке создания нового объекта в C++

#0 0xff146ff4 in _malloc_unlocked() from /usr/lib/libc.so.1 
#1 0xff146e40 in malloc() from /usr/lib/libc.so.1 
#2 0x24430 in __builtin_new (sz=128) at /usr/local/src/gcc-2.95.1/gcc/cp/new1.cc:84 
#3 0x1e71c in FileHeader::Allocate (this=0x3f5d8, freeMap=0x3eea0, fileSize=5719) 
    at ../filesys/filehdr.cc:63 
#4 0x1f61c in FileSystem::Create (this=0x3d8b8, name=0xffbff8f3 "test", initialSize=5719) 
    at ../filesys/filesys.cc:200 
#5 0x1ffac in Copy (from=0xffbff8e4 "assignment 2.c", to=0xffbff8f3 "test") 
    at ../filesys/fstest.cc:52 
#6 0x15150 in main (argc=3, argv=0xffbff768) at ../threads/main.cc:116 

Соответствующая строка кода из filehdr.cc является:

IndirectHeader * s; 
s = new IndirectHeader; 

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

ответ

2

Что вы видите в обратном направлении - это краш, выделяющий память для возврата вашего IndirectHeader. Он еще не начал строить объект, потому что он все еще пытается выделить для него память. Скорее всего, в вашей программе есть ошибка, которая испортила кучу.

+0

Если вы можете работать под Linux, запуск вашей программы под управлением valgrind поможет вам легче определить источник коррупции. –

+0

Ах, к сожалению, это для моего класса ОС, и наша сборка работает на сервере solaris. У меня нет разрешений на установку чего-либо подобного valgrind. Я попытался перемещать свою работу локально, но пытаюсь переделать некоторые из файлов make, как будто это боль. Есть ли другие трюки, которые я мог бы попытаться найти в коррупции? – scotthew1

+0

Да, оказывается, я присваивал значения списку за его пределами. Я должен был знать, что это было просто так. – scotthew1

Смежные вопросы