2010-03-25 2 views
3

я написал небольшую программу, которая выглядит следующим образом:Полного состояния процесса

#include<stdio.h> 
int c=0; 
int main() 
{ 
    int a=10,b=20; 
    printf("Hello World\n"); 
    c = a+b; 
    printf("%d\n",c); 
    return 0; 
} 

Я могу создать a.out файл с помощью команды Gcc -save-временных секретарей helloworld.c. копи-Temps флаг позволяет сохранять промежуточные файлы, helloworld.i, helloworld.s, helloworld.o

Теперь я хочу, чтобы точно знать, как стек этой программы изменений во время выполнения. Может кто-нибудь, пожалуйста, скажите мне, как это сделать.

Моя цель этого вопроса - точно знать, что все происходит во время выполнения любой программы.

ответ

1

Вы можете просто посмотреть на helloworld.s, он будет иметь список ассемблерного кода в программе, из этого вы можете точно сказать, что происходит со стеклом, и наблюдать, где и когда переменные выскользнули/надавили на него , Если вы хотите наблюдать за выполнением программы, вы можете скомпилировать код с флагом -g, а затем запустить его через gdb.

Смежные вопросы