Это ошибка:
[Fri Jun 24 18:26:44 2011] [error] [client ::1] perl(3116) malloc: *** error for object 0x10082b808: incorrect checksum for freed object - object was probably modified after being freed.
[Fri Jun 24 18:26:44 2011] [error] [client ::1] *** set a breakpoint in malloc_error_break to debug
[Fri Jun 24 18:26:44 2011] [error] [client ::1] Premature end of script headers: adjsearch.cgi
Во-первых, я мог бы попытаться отладить, если бы знал, как применить совет второй строки из error_log.http://lists.apple.com/archives/Xcode-users/2008/Apr/msg00160.html говорит об этом в XCode, но я не использую XCode ...
Я понятия не имею, что это значит, и хотел бы помочь некоторым понять следующее объяснение, и как я могуиспользуйте эту информацию, чтобы помочь отладке.:
И после некоторого поиска я нашел это:
Ошибка означает именно то, что она говорит: вы, вероятно, изменили память после ее освобождения.Ваш фрагмент кода не показывает, например, где было размещено itr_coord, но код, в котором вы видите это сообщение об ошибке, является просто точкой, в которой какая-то операция с памятью (возможно, выделение) заставила отладчик памяти проверить контрольные суммы освобожденных объектов.Это на самом деле не говорит вам о том, где на самом деле произошла ошибка записи в освобожденную память
Если вы хотите более конкретную информацию, дайте мне знать.Большое спасибо!
ОБНОВЛЕНИЕ: очень странно, вот проблема (не решение):
elsif ($category_id eq "allverb")
{
if (($lines[$l] =~ /\b$verbform\b/i))
{
next unless ($lines[$l] =~ /\w+\((\w+)\-\d+\,\s(\w+)\-\d+\)/);
$arg1 = $1;
$arg2 = $2;
#If the searchword is the 1st argument
$goodmatch = 1;
}
}
Нет ошибки, если я сделаю что-то подобное (примечание добавлено, если утверждение):
elsif ($category_id eq "allverb")
{
if (($lines[$l] =~ /\b$verbform\b/i))
{
next unless ($lines[$l] =~ /\w+\((\w+)\-\d+\,\s(\w+)\-\d+\)/);
$arg1 = $1;
$arg2 = $2;
if ($arg1 eq $verbform)
{
$goodmatch = 1;
}
}
}
но опять же, если я поставлю if ($arg1 eq $verbform or $arg2 eq $verbform)
или просто отделю их от операторов if ..?
Может быть, это ошибка памяти .... мой код написан довольно неэффективнопрямо сейчас.Или ошибка apache ... Каждый раз, когда я ограничиваю условие больше (добавьте больше в оператор if, чтобы меньше проходило), это работает!Как мне обойти это?
ИСПОЛЬЗОВАННЫЕ ВЕРСИИ:
Mac OS X 10.6.7 ... Perl версия 5.10.0 ... Apache2?Тот, который поставляется с Mac ...