Есть ли способ просмотра элементов стека, таких как не назначенные значения возврата или исключения, которые не назначены локальной переменной? (Например, бросить новый ...)Отладка данных стека, не назначенных именованной переменной
Например, предположим, что у меня есть код вдоль линий:
public String foo(InputStream in) throws IOException {
NastyObj obj = null;
try {
obj = new NastyObj(in);
return (obj.read());
} finally {
if (obj != null) obj.close();
}
}
Есть ли способ, чтобы просмотреть возвращение или исключение значение, не наступив на более высокий уровень, где кадр он назначен? Это особенно актуально для исключений, потому что вам часто приходится выполнять резервное копирование по нескольким кадрам, чтобы найти фактический обработчик.
Обычно я использую среду отладки Eclipse, но любой ответ оценивается. Кроме того, если это невозможно сделать, можете ли вы объяснить, почему? (JVM, ограничение JPDA?)
Вы имеете в виду что-то вроде этого: http://stackoverflow.com/questions/1069066/get-current-stack-trace-in-java/1069074#1069074 – jjnguy
Мысли то же самое более одного раза. Eclipse не может, AFAIK. –
@ Justin Nelson - Нет. Цель состоит в том, чтобы просмотреть исключение или вернуть значение в отладчике. например если бы я был остановлен в точке останова в блоке finally. Получение трассировки стека покажет мне путь вызова в foo, а не результат. – gibbss