Справка Windbg->, как я могу прочитать код в этом стеке вызовов?

Согласно таблице cellForRowAt

cell.collectionview.reloadData()
cell.matchOddCV = matchOdd

вы назначаете один и тот же массив для всех коллекций внутри всех ячеек таблицы, вам нужно создать свойство массива внутри каждого объекта Matchs и делать

let matcCell = match[indexPath.row]
cell.matchOddCV = matcCell.odds // create odds array and assign data for each object
cell.collectionview.reloadData()
8
задан Pure.Krome 30 October 2008 в 12:26
поделиться

2 ответа

Вы не можете получить точную строку кода, если приложение не было развернуто в режиме отладки. И если бы это имело место, я полагаю, что это показало бы им в! вызов clrstack.

3
ответ дан 5 December 2019 в 22:21
поделиться

Это - трудная проблема и может потребовать продвижения за пределами зоны комфорта управляемых только отладка.

То, что Вы хотите сделать, отобразить IL для функционального MyClass. Нечто. DoSomeStuffInHere к дизассемблированию той функции. Моим примером ниже является x86 однако x64, может выполнить те же шаги.

Это - путь, на который ссылаются, вниз глубоко в следующей ссылке. Отладка Неожиданного Завершения Процесса

Текст в качестве примера из технического описания: В управляемом стеке, Отладке. Неожиданный btnSTA_Click... Посмотрите на код в Отладке. Неожиданное btnSTA_Click событие.

private void btnSTA_Click(object sender, System.EventArgs e)
{
   DebuggingCOMLib.STAClass staobj =  new DebuggingCOMLib.STAClass();
   staobj.RaiseError(1,5);
   Label1.Text += "STA Call Completed sucessfully";
}

Если исходный код не доступен, можно исследовать блок путем предоставления указателя команд для фрейма стека вызовов к! u команда. Указатель команд может быть получен от! clrstack: вывод.

0096f970  03a00e06 [DEFAULT] [hasThis] Void
Debugging.Unexpected.btnSTA_Click(Object,Class System.EventArgs)

Для разборки этой функции введите! u 03a00e06.

    0:010> !u 03a00e06 
    Normal JIT generated code
    [DEFAULT] [hasThis] Void Debugging.Unexpected.btnSTA_Click(Object,Class 
    System.EventArgs)
    Begin 03a00de0, size 54
   <snip>
    03a00e18 8b15a89c1702     mov     edx,[02179ca8] ("STA Call Completed 
    sucessfully")
    03a00e1e e83d3590ff       call    03304360 (System.String.Concat)
    <snip>
    03a00e2f 5e               pop     esi
    03a00e30 5f               pop     edi
    03a00e31 c20400           ret     0x4

Хорошо, теперь что?
Просканируйте свое собственное! u вывод для строки как

call    03304360 (System.IO.File.Move)

Кроме того, можно работать! ip2md 03a00e06, чтобы получить MethodDesc и затем работать! dumpil для исследования кода IL, если это легче.

Вы могли считать количество вызовов к Системе. IO.File. Приблизьтесь! u вывод и затем считают в обратном порядке то же число в IL. Затем можно использовать Отражатель.NET, чтобы Демонтировать метод и отобразить C# на IL и сравнить результат.

Партия шагов, но это получило бы Вас к тому же результату :-)

Спасибо, Aaron

3
ответ дан 5 December 2019 в 22:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: