On Thu, 30 Jul 2015, Beckmann, Brad wrote:
In fact stl does use the comparison. That is how I ran into the bug.
#0 0x0000003877630265 in raise () from /lib64/libc.so.6
#1 0x0000003877631d10 in abort () from /lib64/libc.so.6
#2 0x00000038776296e6 in __assert_fail () from /lib64/libc.so.6
#3 0x00000000012a710f in operator> (lhs=..., rhs=...)
at build/gpu_RfO/mem/ruby/slicc_interface/Message.hh:124
#4 0x00000000012a88eb in std::greater<std::shared_ptr<Message> >::operator() (
this=0x7fffffffb9e0, __x=..., __y=...)
at
/tool/pandora64/.package/gcc-4.8.0/include/c++/4.8.0/bits/stl_function.h:226
#5 0x00000000012a7e08 in std::__adjust_heap<__gnu_cxx::__normal_iterator<std::shared_ptr<Message>*,
std::vector<std::shared_ptr<Message>, std::allocator<std::shared_ptr<Message> > > >, long,
std::shared_ptr<Message>, std::greater<std::shared_ptr<Message> > > (__first=..., __holeIndex=0, __len=3, __value=...,
__comp=...)
at /tool/pandora64/.package/gcc-4.8.0/include/c++/4.8.0/bits/stl_heap.h:309
#6 0x00000000012a7808 in std::__pop_heap<__gnu_cxx::__normal_iterator<std::shared_ptr<Message>*,
std::vector<std::shared_ptr<Message>, std::allocator<std::shared_ptr<Message> > > >,
std::greater<std::shared_ptr<Message> > > (__first=...,
__last=..., __result=..., __comp=...)
at /tool/pandora64/.package/gcc-4.8.0/include/c++/4.8.0/bits/stl_heap.h:338
#7 0x00000000012a73ba in std::pop_heap<__gnu_cxx::__normal_iterator<std::shared_ptr<Message>*,
std::vector<std::shared_ptr<Message>, std::allocator<std::shared_ptr<Message> > > >,
std::greater<std::shared_ptr<Message> > > (__first=...,
__last=..., __comp=...)
at /tool/pandora64/.package/gcc-4.8.0/include/c++/4.8.0/bits/stl_heap.h:367
#8 0x00000000013d6182 in WireBuffer::dequeue (this=0x629fda0)
at build/.../mem/ruby/structures/WireBuffer.cc:97
Brad, I am willing to bet that you are applying pop_heap() to something
that is not a heap. In fact, just print the entire vector when the error
happens and see for yourself. Please believe me, wireBuffer is not a
correct data structure. I will again suggest you use MessageBuffer with
ordering set to true.
--
Nilay
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev