Ну, предложения от работы Франческо. Но я все еще смущен поведением здесь. Мы знаем, что использование в кавычках групповых символов без кавычек обычно приводит к ошибке. То есть:
find . -name *.txt -print
find: пути должны предшествовать выражению:
blockquote>HowTo-Word-Split.txt' find: possible unquoted pattern after predicate
-name '?Однако, подстановочный знак в одинарных кавычках (или экранирование это, если это только 1 символ) будет работать так:
find . -name \*.txt -print
, который дает этот вывод (на две отдельные строки)
> ./HowTo-Word-Split.txt > ./bash-parms.txt
Так что в версии bash -c то, что я Я думал, что это:
bash -c 'find . [113] $1 -print' "-name" "*.txt"
приведет к тому, что * .txt будет расширен даже перед передачей в строку cmd, а использование одинарных кавычек приведет к попытке выполнения (после подстановки arg и -c вступает в силу)
find . -name *.txt -print
, который, как я только что продемонстрировал, не работает.
Однако, похоже, существует некоторая магия, связанная с ключом -c, как показано настройкой -x в приглашении bash, например:
$ set -x $ bash -c ' find . [115] "$1" -print' "-name" "*.txt" + bash -c ' find . [115] "$1" -print' -name '*.txt' ./HowTo-Word-Split.txt ./bash-parms.txt
Обратите внимание, что хотя я использовал двойные кавычки в строка -c, bash фактически выполняла поиск с одинарными кавычками, заключенными в аргумент, тем самым заставляя поиск работать.
Проблема решена. :)
Необходимо определить и выбрать правильный поток. Идентификатор текущего потока отображен в подсказке WinDbg.
!threads
отобразит все управляемые потоки в Вашем приложении. После того, как определенный можно переключить использование потоков ~Xs
где X идентификатор WinDbg для потока.
!clrstack
покажет Вам отслеживание стека. Если Вы хотите использование местных жителей и/или параметров -l
/ -p
(или -a
для обоих).
Можно пройти все потоки и перечислить их стек вызовов с ~*e!clrstack
.
Если локальный / параметры не дает Вам, в чем Вы нуждаетесь, использовать !dso
к экранным объектам, продвинутым на стек.
Ничего себе, это трудно без фактического дампа для ввода по абсолютному адресу через.:-)
Вот несколько вопросов.. и затем я добавлю одну команду, которая не была перечислена ранее в ответах выше..
Вопросы:
Вы уверены, что ловите первое исключение и не только последнее, которое было не обработано и разъединено процесс?
Можно ли смотреть на собственный стек вызовов для потока, который выдал исключение.
Примечание: должен быть вызов к RaiseException () или нарушение прав доступа.
Остерегайтесь Асинхронных исключений, которые абсолютно не имеют никакого отношения к Вашему коду и могут войти и вытолкать Вас в блок выгоды... или хуже (Поток. AbortException/System. OutofMemoryException и... StackOverflowException :-)
Для закапывания далее Вас работает! dumpstack на дающем сбой потоке.. Вывод не точен однако, он действительно делает удивительное задание обхода стека вызовов потоков, и можно стать удачливыми и видеть символ, который ссылается на исключение с .cxr и .exr в сообщении. Если Вы делаете, то можно выполнить .cxr - cxr-адресный и видеть то, что первое исключение было в цепочке исключения.
Точка: Хотя я могу быть стороной, ступающей вопрос, если исключение вызвало WER, это не было обработано и удалило процесс, можно хотеть Зарегистрировать стопку начального вызова или добавить предыдущее исключение как внутреннее исключение, таким образом, можно определить первопричину.
Спасибо, Aaron