Распечатать полный стек вызовов на printStackTrace ()?

Параметры в вызовах функций в PowerShell (все версии) разделяются пробелом, а не запятыми . Кроме того, круглые скобки совершенно не нужны и вызовут ошибку разбора в PowerShell 2.0 (или более поздней версии), если активен Set-StrictMode . Аргументы в скобках используются только в методах .NET.

function foo($a, $b, $c) {
   "a: $a; b: $b; c: $c"
}

ps> foo 1 2 3
a: 1; b: 2; c: 3

42
задан akarnokd 25 June 2009 в 11:50
поделиться

3 ответа

вот объяснение строк «вызвано» и «... n еще» в напечатанной трассировке. см. также JavaDoc для printStackTrace . у вас может не быть никакой работы.

Обратите внимание на наличие строк, содержащих символы "...". Эти строки показывают, что оставшаяся часть трассировки стека для этого исключения совпадает с указанным количеством кадров из нижней части трассировки стека исключения, которое было вызвано этим исключением («закрывающее» исключение). Это сокращение может значительно уменьшить длину вывода в общем случае, когда обернутое исключение генерируется тем же методом, что и "причинное исключение".

29
ответ дан 27 November 2019 в 00:00
поделиться

Вы не можете что-нибудь сделать с Thread.currentThread (). GetStackTrace () ?

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

public class Test {
    public static void main(String[] args) {
        method();
    }

    static int x = 0;
    private static void method() {
        if(x>20) {
            StackTraceElement[] elements = Thread.currentThread().getStackTrace();

            for(int i=0; i<elements.length; i++) {
                System.out.println(elements[i]);
            }
        }
        else {
            x++;
            method();
        }
    }
}
5
ответ дан 27 November 2019 в 00:00
поделиться

Может быть, вы можете попытаться перебрать массив, возвращаемый:

Thread.currentThread().getStackTrace();
-1
ответ дан 27 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

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