自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++ profile應(yīng)用技巧分析

開發(fā) 后端
也許有很多人都對C++ profile還不是很了解,因為這一功能自從VC6之后就被去掉了。不過在特定情況中我們還是需要這一功能來幫助我們完成一些操作。

想必用過C++編程語言的開發(fā)人員會發(fā)現(xiàn),這一應(yīng)用廣泛的計算機應(yīng)用語言確實比較復(fù)雜,要想完全弄清其中的功能特點,是一個非常艱巨的任務(wù)。在這篇文章中我們先來了解一下C++ profiler的簡單用法。#t#

自從VC6以后,C++ profile功能便從Team Server Editions以外的版本中去掉了,如果沒有此版本的VC,只能自己動手了。這是另一種使用Profile的方法,根據(jù)MSDN關(guān)于/callcap 的說明,編譯WinCE應(yīng)用程序時可以使用這個開關(guān),試過后在Win32平臺上也可以。這里需要注意的是在_CAP函數(shù)中,***不修改寄存器,那樣可能導(dǎo)致被調(diào)用的函數(shù)產(chǎn)生錯誤。

另外,如果直接把函數(shù)實現(xiàn)和調(diào)試的程序放在一個項目中編譯,將會使CAP函數(shù)產(chǎn)生遞歸調(diào)用而導(dǎo)致堆棧溢出,處理方法是在一個靜態(tài)庫中不使用/callcap編譯,然后再聯(lián)接到調(diào)試的程序中。這種方式調(diào)試函數(shù)仍然不太方便,只能知道一個函數(shù)指針,無法知道函數(shù)名稱。

 

  1. extern "C" {  
  2. //void __stdcall _CAP_Profiling(void* func);  
  3. //void __stdcall _CAP_Start_Profiling(void* func, void* called);  
  4. //void __stdcall _CAP_End_Profiling(void* func);  
  5. void __stdcall _CAP_Enter_Function(void* func);  
  6. void __stdcall _CAP_Exit_Function(void* func);  
  7. }  
  8. void __stdcall _CAP_Enter_Function(void* func)  
  9. {  
  10. __asm  
  11. {  
  12. pushad //堆棧中按順序壓入寄存器: EAX,ECX,EDX,EBX,ESP,EBP,ESI和EDI  
  13. pushfd  
  14. }  
  15. //這里添加代碼  
  16. __asm   
  17. {  
  18. popfd  
  19. popad  
  20. }  
  21. }  
  22. void __stdcall _CAP_Exit_Function(void* func)  
  23. {  
  24. __asm   
  25. {  
  26. pushad  
  27. pushfd  
  28. }  
  29. __asm   
  30. {  
  31. popfd  
  32. popad  
  33. }  

以上就是對C++ profile的相關(guān)介紹。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-01 11:13:00

C++ Traits

2010-02-06 13:47:08

C++標(biāo)準(zhǔn)擴展

2010-02-06 17:09:29

C++文件拷貝

2010-02-04 14:58:06

C++內(nèi)存分配

2010-02-01 17:09:07

C++鏈表操作

2010-02-05 13:44:06

C++ eof()函數(shù)

2010-02-06 17:21:20

C++ CreateT

2011-05-30 15:29:32

C++

2011-04-11 14:29:11

C++輸出格式

2010-01-28 17:14:38

Visual C++應(yīng)

2010-02-05 13:52:04

C++資源管理

2010-02-06 14:28:38

C++標(biāo)準(zhǔn)輸入輸出

2010-02-06 16:16:01

C++冒泡排序

2010-02-05 18:04:21

C++剪切板

2010-02-01 17:37:35

C++調(diào)用C鏈接庫

2011-07-10 15:26:54

C++

2010-01-22 16:35:41

C++開發(fā)

2010-02-03 16:04:34

C++標(biāo)準(zhǔn)類庫

2010-01-26 17:11:13

C++編程

2010-02-03 15:35:00

C++輸入輸出漢字
點贊
收藏

51CTO技術(shù)棧公眾號