2013-02-22 1 views
0

При запуске MemCheck VALGRIND в, иногда VALGRIND сообщить об ошибке, как это:Сообщение об ошибке Valgrind? Зачем?

 
==2745== Memcheck, a memory error detector 
==2745== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. 
==2745== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info 
==2745== Command: ./HSFramework 
==2745== 
==2745== Invalid write of size 8 
==2745== at 0x3B81C097C0: do_lookup_x (in /lib64/ld-2.12.so) 
==2745== by 0x1C31032D: ??? 
==2745== by 0x3B81C09E19: _dl_lookup_symbol_x (in /lib64/ld-2.12.so) 
==2745== Address 0x7feffee78 is on thread 1's stack 
==2745== 

platform: Linux 2.6.32-220.el6.x86_64 x86_64 x86_64 x86_64 GNU/Linux 

Существует не подсказка о моем коде от этого отчета об ошибке. Я не знал об этом отчете об ошибке.
Какие причины приведут к этой ошибке?

+0

могли бы вы показать нам свой код – cIph3r

+1

Там нет понятия о коде? Насколько вы можете спарить код и все еще производить эту ошибку, и с какой частотой? valgrind обычно не сообщает об ошибках по прихоти, обычно есть причина для этого. – WhozCraig

+0

Я нашел ключ к моему коду. – user2098323

ответ

0

Эта ошибка означает, что вы получаете переполнение буфера в do_lookup_x, если у вас есть источник, который смотрит на это или делится с нами.

http://valgrind.org/docs/manual/quick-start.html

+0

Ошибка, которая выделяет гораздо больше памяти в стеке, что приводит к переполнению стека. – user2098323

+0

Большое спасибо за помощь. – user2098323

0

Это означает, что функция do_lookup_x выполнила недопустимый доступ для записи. Эта функция является частью runtime library (и, вероятно, источник проблемы). Я хотел бы обратиться к автору HSFramework, чтобы узнать, могут ли они исправить эту проблему, выполнив команду valgrind, как и вы.

+0

Я исправил эту проблему. Я выделяю память, размер которой большой в куче, а не в стеке. – user2098323

+0

Большое спасибо за вашу помощь. – user2098323

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

  • Нет связанных вопросов^_^