Дамп стека вызовов программно

Я не уверен ни в одном из остальных, но я знаю, что SQLite и MySQL не имеют никакого упорядочивания строки "по умолчанию". На тех двух диалектах, по крайней мере, следующий отрывок захватывает 15-ю запись от the_table, сортирующего по дате/времени, это было добавлено:

SELECT * FROM the_table ORDER BY added DESC LIMIT 1,15

(конечно, Вы должны были бы иметь добавленное поле DATETIME и установить его на дату/время, что запись была добавлена...)

33
задан Cœur 26 April 2017 в 17:16
поделиться

4 ответа

System.Environment.StackTrace

Выдает текущий стек в виде строки.

Вы также можете использовать класс StackTrace , как указывали другие, если у вас более продвинутые потребности.

61
ответ дан 27 November 2019 в 17:59
поделиться

Вы можете использовать:

StackTrace callStack = new StackTrace();

А затем получить доступ к определенному кадру стека:

StackFrame frame = callStack.GetFrame(1);
13
ответ дан 27 November 2019 в 17:59
поделиться

http://msdn.microsoft.com/en-us/library/system.diagnostics.stacktrace.aspx

Из MSDN:

using System.Diagnostics;

        StackTrace st = new StackTrace(true);
        for(int i =0; i< st.FrameCount; i++ )
        {
            // Note that high up the call stack, there is only
            // one stack frame.
            StackFrame sf = st.GetFrame(i);
            Console.WriteLine();
            Console.WriteLine("High up the call stack, Method: {0}",
                sf.GetMethod());

            Console.WriteLine("High up the call stack, Line Number: {0}",
                sf.GetFileLineNumber());
        }
1
ответ дан 27 November 2019 в 17:59
поделиться

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

-3
ответ дан 27 November 2019 в 17:59
поделиться
Другие вопросы по тегам:

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