Шаг 102.
Отладка программ на языке высокого уровня

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

    Поговорим теперь об отладке программ, написанных на языке высокого уровня. Если при трансляции в исполняемом модуле была сохранена отладочная информация, то Turbo Debugger будет работать и с языком высокого уровня. Рассмотрим, например, простую консольную программу, демонстрирующую пузырьковую сортировку. Программа проверена в среде Borland C++ 4.5.

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

void main ()
{
  DWORD a[10];
  DWORD j,p,k,r;
  randomize();
  for(j=0; j<10; j++) a[j]=random(10);
  //Сортировка
  for(k=9; k>1; k--)
  {
	 r=0;
	 for(j=0; j<k; j++)
	 {
		if(a[j]>a[j+1]){p=a[j+1];a[j+1]=a[j];a[j]=p; r=1;};
	 }
	 if(r==0) break;
  }
  for(j=0; j<10; j++) printf("%lu\n",a[j]);
}
Текст этой программы можно взять здесь.

    Не забудьте перед компиляцией программы вызвать Target Expert, щелкнув правой кнопкой мыши в тексте программы, и установить параметры, приведенные на рисунке 1.


Рис.1. Параметры проекта

    На рисунке 2 показано окно отладчика Turbo Debugger с данной программой. В нижней части рисунка расположено окно Watches. В этом окне отображаются значения элементов массива а[]. Обратившись к окну CPU, можно увидеть, как программа пузырьковой сортировки, реализованная на языке С, преобразуется в ассемблерный код.


Рис.2. Отображение программы в окне отладчика


Рис.3. Окно CPU

    На следующем шаге мы рассмотрим методику отладки.




Предыдущий шаг Содержание Следующий шаг