54錛氳繘鍏ュ嚱鏁版椂錛屼細璋冪敤 link a6 鎸囦護錛屽皢A6鍘嬫爤錛屽啀灝嗘爤欏舵寚閽堝瓨鍏6錛岄鍑哄嚱鏁板仛鐩稿弽鎿嶄綔銆?br> VC錛坉ebug錛夛細榪涘叆鍑芥暟鏃訛紝浼氳皟鐢?push ebp 錛沵ov ebp, esp錛屽悓54鍘熺悊銆傞鍑哄嚱鏁板仛鐩稿弽鎿嶄綔銆?br> 浠?VC 涓轟緥錛岃鏄庤皟鐢ㄥ爢鏍堢殑鑾峰緱銆?br> ebp-+ +--------------------+
| | . . . . . . |
| +--------------------+
+--- | sp1 |---+
+--------------------+ |
| pc1 | |
+--------------------+ |
| . . . . . . | |
+--------------------+ |
+--- | sp2 |---+
| +--------------------+
| | pc2 |
| +--------------------+
| | . . . . . . |
鑾峰緱 pc 鎸囬拡鐨勬搷浣滐細
1 void GetCallStack()
2 {
3 unsigned int reg_bp;
4 unsigned int pc;
5 __asm{
6 mov [reg_bp],ebp
7 };
8 unsigned int *pbp = (unsigned int *)reg_bp;
9 printf("Call stack:\n");
10 do{
11 pbp = (unsigned int *)(*pbp);
12 pc = *(pbp+1);
13 printf("\t 0x%08x\n",pc);
14 }while(pc);
15 }
鑻ユ兂寰楀埌鍑芥暟鍚嶉渶瑕佸弽鏌ヨ皟璇曚俊鎭〃銆?br> 
]]>