Существует .val()
метод:
, Если у Вас есть вход с идентификатором txtEmail
, можно использовать следующий код для доступа к значению текстового поля:
$("#txtEmail").val()
можно также использовать val(string)
метод для устанавливания того значения:
$("#txtEmail").val("something")
Я знаю, что для 3.0 SDK они переместили symbolicatecrash в новое место, и мне пришлось получить эту новую версию, чтобы сопоставления символов снова работали.
Для 3.0 он находится по адресу: /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources
Так что, возможно, стоит убедиться, что у вас самая последняя версия. Я вижу правильное отображение символов как для исходных, так и для функций API.
Редактировать символьный сбой. Перейдите к строке 506 и измените это:
ARM => "armv6",
на это:
ARM => "armv7",
Я испытал точно такую же проблему и смогла его исправить, изменив символ сценария. Проблема для меня заключалась в том, что как «OTOOL», «ATOS» и «размер» не ведут себя хорошо с модулями, составленными для ARMV7. Есть версии этих инструментов, которые хорошо работают с такими модулями, которые можно найти в /developer/platforms/iphoneos.platform/developer/usr/bin. Для OTOOL ScripticaTecrash Script нашел в /developer/platforms/iphoneos.platform/developer/library/privateframeworks/dtdevicekit.framework/versions/a/resources/versions/a/resources, уже использует механизм для поиска соответствующей версии:
# Find otool from the latest iphoneos
my $otool = `xcrun -sdk iphoneos -find otool`;
chomp($otool);
my $atos = `xcrun -sdk iphoneos -find atos`;
chomp($atos);
Однако «размер» Используется непосредственно:
if (-e '/usr/bin/size') {
open my($ph),"-|",'size','-m','-l','-x',$symbol or die $!;
изменение этого куска кода в уродливой:
if (-e '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/size') {
open my($ph),"-|",'/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/size','-m','-l','-x',$symbol or die $!;
, кажется, делает его работать.
Я испытывал точно такую же проблему - символы для системных модулей отображаются, но не из моих заявление. Оказывается, потому что мои файлы .sym не могут быть обнаружены прожектором, так как у меня были «скрытые» все продукты сборки, указав в настройках, которые все файлы сборки переходят в каталог «.xcode-build». Изменение этого на «Xcode-Build» исправлена проблема!
Одно можно проверить. Если вы знаете файл DSIM, который вы хотите символиковать, то щелкните правой кнопкой мыши файл DSIM и выберите «Получить информацию». В более подробной информации раздел является UUID для файла DSYM. Для работы символика для работы UUID для вашего приложения (прилагается в угловые скобки в раздел двоичных изображений журнала аварийного журнала), необходимо соответствовать UUID файла DSYM.
Я нашел проблему в моем использовании PLCRASHREPORTER, где UUID в журнале аварии не соответствует UUID из генерируемого файла DSYM, что приводит к неспособности символов.
Если вы испытываете ситуацию, когда, когда вы запускаете символику сбой, только ваши собственные библиотеки являются символики, но системные библиотеки не символизируются, и у вас есть 3,0+ iPhone SDK, скорее всего, проблема что формат отчета, который вы являетесь символиком, является более старым форматом. Один из полей заголовка в отчете о сбоях - «Версия отчета», это версия вашего отчета о сбое. Самая текущая версия (во время этого письма iPhone OS 3.2.1) - «104». Тем не менее, SymbolicateCrash обрабатывает версию 102 и 103. Версия 104 представлена новая новая архитектура чипа (ARMV7), а двоичные изображения имеют возможность указывать архитектуру чипа, которая используется. Версия 102 и 103 отчета о сбое не указывает архитектуру чипа для использования. Самая текущая версия SymbolicateCrash предположит использовать ARMV6 для версии 102 и 103 отчета. Это, вероятно, неверно.
Сбой символа должен быть написан, чтобы быть более совместимым со старыми форматами отчетов. В целом UUID для двоичных изображений на самом деле все, что вам нужно правильно сопоставить символы библиотеки системы для правильной версии ОС, а также архитектуру - архитектура, вероятно, избыточно. Однако, чтобы это произошло правильно, символикальный скрипт сбоя должен быть изменен, так что в дополнение к итерации через все версии системы, установленные на хост-машине, чтобы найти правильную библиотеку, она также должна повторяться через все микро архитектурам. Это, к счастью, довольно легко изменение.
Чтобы справиться с этим, я сделал следующие изменения:
в подпрограмме GetsymbolPathor:
if ( defined($temp_path) && matchesUUID($temp_path, $uuid, $arch) ) {
$out_path = $temp_path;
@out_path_arr = {};
} else {
undef $temp_path;
print STDERR "-- NO MATCH\n" if $opt{v};
}
Изменение:
if ( defined($temp_path) && matchesUUID($temp_path, $uuid, $arch) ) {
$out_path = $temp_path;
@out_path_arr = {};
} else {
if ( defined($temp_path) && matchesUUID($temp_path, $uuid, 'armv7') ) {
$out_path = $temp_path;
@out_path_arr = {};
} else {
undef $temp_path;
print STDERR "-- NO MATCH\n" if $opt{v};
}
}
Это проверит разные архитектуры чиповых архитектур на хост-системе, чтобы найти совпадение с UUID в Раздел двоичного изображения в отчете об аварийном отчете (и если предстоящий iPhone 2010 имеет различную архитектуру чипа, которая должна быть добавлена к этому, если для этого, если они).
Для следующего изменения UUID-поисковой кусок кода является хрупким. Если OTool не возвращает что-то, что SymbolicateCrash может понять, SymbolicateCrash выйдет. В случае, когда вы тестируете UUID архитектуры, которая не распознается хост-машина, OTOOL ничего не вернется, а SymbolicateCrash умирает. Вам нужно сделать символику с крахом немного более снисходительным, просто игнорируйте результат OOTOOL, чтобы он мог перейти к следующей архитектуре, которую вы проверяете.
Измените подпрограмму MatchesuuID:
if ( $test eq $uuid ) {
## See that it isn't stripped. Even fully stripped apps have one symbol, so ensure that there is more than one.
my ($nlocalsym) = $TEST_uuid =~ /nlocalsym\s+([0-9A-Fa-f]+)/;
my ($nextdefsym) = $TEST_uuid =~ /nextdefsym\s+([0-9A-Fa-f]+)/;
my $totalsym = $nextdefsym + $nlocalsym;
print STDERR "\nNumber of symbols in $path: $nextdefsym + $nlocalsym = $totalsym\n" if $opt{v};
return 1 if ( $totalsym > 1 );
print STDERR "## $path appears to be stripped, skipping.\n" if $opt{v};
} else {
print STDERR "Given UUID $uuid for '$path' is really UUID $test\n" if $opt{v};
}
} else {
die "Can't understand the output from otool ($TEST_uuid)";
}
к чему-то более снисходительному, как это:
if ( $test eq $uuid ) {
## See that it isn't stripped. Even fully stripped apps have one symbol, so ensure that there is more than one.
my ($nlocalsym) = $TEST_uuid =~ /nlocalsym\s+([0-9A-Fa-f]+)/;
my ($nextdefsym) = $TEST_uuid =~ /nextdefsym\s+([0-9A-Fa-f]+)/;
my $totalsym = $nextdefsym + $nlocalsym;
print STDERR "\nNumber of symbols in $path: $nextdefsym + $nlocalsym = $totalsym\n" if $opt{v};
return 1 if ( $totalsym > 1 );
print STDERR "## $path appears to be stripped, skipping.\n" if $opt{v};
} else {
print STDERR "Given UUID $uuid for '$path' is really UUID $test\n" if $opt{v};
}
} else {
#die "Can't understand the output from otool ($TEST_uuid)";
print "Can't understand the output from otool ($TEST_uuid)";
}
После того, как я сделал эти изменения, я смог увидеть системные объекты, которые правильно получают символики (а также мой собственный код), когда я использую отчет о сбоях Версии 102 и 103 с текущим iPhone SDK (3.1.2).
У меня было множество запусков с symbolicatecrash, последнее с момента обновления до SDK 4. Несмотря на сборку для архитектур armv6 и amrv7, otool и atos блокируют двоичный образ моего приложения. Я внес следующие изменения, и все снова работает. Надеюсь это поможет.
ОТ (sub symbolize_frames):
открыть мой ($ ph), $ cmd или умереть $ !;
ДО:
открыть мой ($ ph), $ cmd или умереть $ !;
if (rindex (, "atos не может загрузить символы"! = -1 && $ arch eq "armv7")) {
$ arch = "armv6";
my $ cmd = "$ atos -arch $ arch -o '$ escapedSymbol' @ {[keys% $ frames]} |";
print STDERR "Running $cmd\n" if $opt{v};
open $ph,$cmd or die $!;
}
И
FROM (sub соответствуетUUID):
} еще {
die "Не могу понять вывод otool ($ TEST_uuid)";
}
TO:
} else {
if ($ arch eq "armv7") {
вернуть совпаденияUUID ($ path, $ uuid, "armv6");
} еще {
die "Не могу понять вывод otool ($ TEST_uuid)";
}
}
Предложения Грега, не сработали для меня, но помогли указать верное направление заставить журналы plcrashreporter (репортер версии 103) снова символизировать с sdk 4.0.
BTW: это проблема, с которой вы определенно столкнетесь с отчетами, созданными на более новых устройствах (armv7). потому что symbolicate предполагает, что отчеты версии 103 - это armv6.
сделайте копию самого нового скрипта symbolicatecrash (sdk 4.0) для изменений, которые вы делаете.
Примечание: в зависимости от редактора, который вы используете, вам, возможно, придется установить исполняемый бит после редактирования.
chmod 755 symbolicatecrash
это потому, что по умолчанию установлено armv6.
Решение: в sub parse_images
установить архитектуру по умолчанию my $default_arch = 'armv7';
Решение:
заменить:
$app = $bundlename if (!defined $app && defined $image{plus} && length $image{plus});
на:
$app = $bundlename if (!defined $app);
Решение: исправление Грега для
sub matchesUUID
.
replace:
} else { die "Can't understand the output from otool ($TEST_uuid)"; }
by:
} else { if ($arch eq "armv7") { return matchesUUID($path, $uuid, "armv6"); } else { die "Can't understand the output from otool ($TEST_uuid)"; } }
здесь изменения Грега не сработали,
<$ph>
в rindex(
потерялся в подсветке кода. <$ph>
в rindex(
читает первую строку... поэтому один кадр теряется в случае успешной проверки.
В качестве "хака" я просто подделал кадр с adreass 1
... который "используется" во время проверки atos. Вот что я изменил в sub symbolize_frames
:
replace:
my $cmd = "$atos -arch $arch -o '$escapedSymbol' @{[ keys %$frames ]} | ";
by:
my $cmd = "$atos -arch $arch -o '$escapedSymbol' 1 @{[ keys %$frames ]} 2>&1 | ";
replace:
open my($ph),$cmd or die $!;
на:
open my($ph),$cmd or die $!;
if (rindex(<$ph>, "atos cannot load symbols") != -1 && $arch eq "armv7") {
my $arch = "armv6"; my $cmd = "$atos -arch $arch -o '$escapedSymbol' @{[ keys %$frames ]} 2>&1 | ";
print STDERR "Running $cmd\n" if $opt{v};
open $ph,$cmd or die $!;
}
Примечание: с этими изменениями скрипт работает нормально для меня - "исправления", вероятно, не очень элегантны, но я не владею perl :) ...