Debug...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Debug...

Сообщение drronnie » 12.09.2005 (Пн) 23:58

Господа, как получить (возможно ли это вообще) имя функции из которой вызвали "нас"

Например есть функция First, которую вызывают из функции Second. Как получить имя последней....
Компиляция - перевод словесного поноса в машинный код.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.09.2005 (Вт) 0:36

Ну... Например, узнать адрес возврата и посмотреть его в PDB-файле.
Тогда, правда, PDB-файл придётся таскать вместе с прогой.
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 13.09.2005 (Вт) 10:41

Если в общем случае, то см. пост Темыча. Если же при отладочном запуске из-под IDE, то в функции Second ставишь точку прерывания (она же брейкпойнт), останавливаешься на ней, после чего нажимаешь Ctrl+L. Вот он тебе и Call Stack...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.09.2005 (Вт) 10:56

Ennor писал(а):Если в общем случае, то см. пост Темыча. Если же при отладочном запуске из-под IDE, то в функции Second ставишь точку прерывания (она же брейкпойнт), останавливаешься на ней, после чего нажимаешь Ctrl+L. Вот он тебе и Call Stack...


тогда лучше уж брейкпойнт в функцию First поставить
Весь мир матрица, а мы в нем потоки байтов!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 13.09.2005 (Вт) 11:27

!Viper! писал(а):тогда лучше уж брейкпойнт в функцию First поставить

Да, действительно. Пардон за невнимательность.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.09.2005 (Вт) 12:38

Нет, функцию Second может вызвать кто угодно, а не только First. Поэтому брейкпойнт надо ставить на Second и по стеку смотреть, кто его вызвал.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 13.09.2005 (Вт) 14:23

alibek писал(а):Нет, функцию Second может вызвать кто угодно, а не только First. Поэтому брейкпойнт надо ставить на Second и по стеку смотреть, кто его вызвал.

Alibek, я тоже запутался именно в этом месте :). Нумерация в обратную сторону.

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 13.09.2005 (Вт) 14:26

Как узнать код возврата?
Компиляция - перевод словесного поноса в машинный код.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.09.2005 (Вт) 18:34

Код возврата чего?
Изображение

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 14.09.2005 (Ср) 0:06

Ну ты о чём говорил?
Это тот адрес куда возвращается выполнение программы при завершении текущей функции.... да?
Компиляция - перевод словесного поноса в машинный код.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.09.2005 (Ср) 0:53

Да. Только это не код, это адрес.
Поищи по форуму, тут GSerg и Approximator не только примеры приводили, но и обсуждали преимущества и недостатки (для другой цели, правда).
Изображение

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 14.09.2005 (Ср) 12:42

tyomitch писал(а):Да. Только это не код, это адрес.


А я что написал "код"?
Последний раз редактировалось drronnie 14.09.2005 (Ср) 18:49, всего редактировалось 1 раз.
Компиляция - перевод словесного поноса в машинный код.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.09.2005 (Ср) 18:26

drronnie писал(а):
tyomitch писал(а):Да. Только это не код, это адрес.


А я что написал "код"?

:roll:
Ты писал(а):Как узнать код возврата?
Изображение

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 14.09.2005 (Ср) 18:50

Лажанулся :)
Компиляция - перевод словесного поноса в машинный код.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 66

    TopList