C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 26 - Стек вызовов / Отладка / Visual C++

Шаг 26 - Стек вызовов

Просмотр порядка вызовов может быть очень полезен в ситуации когда функция вызывается из разных мест. Вот простой пример кода:

#include "stdafx.h"
#include "afx.h"

void test();
void atest();

void main()
{
	int i=255;
	atest();
	test();
	i=i+i;
}

void test()
{
	atest();
}

void atest()
{
	
}

Функция ates() может быть вызвана из двух мест. В реальном программировании под Windows с использованием MFC одна и таже функция может быть вызвана из огромного количества мест. При этом в функцию могут быть переданы ошибочные параметры и нас заинтересует кто такой поросенок. Вот тут-то мы сможем это узнать. Запускает программу на отладку с остановкой в atest() и открываем окно вызовов. Сделать это можно через меню.

26_1.gif (3871 b)

И видим, что atest() вызван из main().

26_2.gif (2758 b)

Запустим программу до той же точки.

26_3.gif (3042 b)

А теперь видим, что atest() вызвана из test(), ее в свою очередь вызвала main() (ведь параметры могут просто передаваться от функции к функции).


| |
Автор Каев Артем.
[AD]