WFU

[ 精選文章 ]

自行車 入門 Escape 3 , Snap 21 , Revel

最近周末想運動 , 平日想通勤 , 想買台自行車 , 把自己找的資料跟大家分享 , 如果你是玩家級的 就不用看了 這是給跟我一樣的新新新手 參考的 騎車半年後的補充: 如果你有把握你是真的有時間有興趣會一直騎,建議還是存點錢買好一點的彎把公路車, 或是可以考慮買2手的自...

2018年7月5日 星期四

STrace 用法

STrace 是我們常用在特別地方的 Trace function

除了加 fucntion 本身

.C 的部份需要加上
#include <AmiLib.h>
或是只要在前面 宣告
VOID InitSTrace();
VOID STrace(CHAR8 *sFormat,...);

.INF 的部份需要加上
[Packages]
AmiCompatibilityPkg/AmiCompatibilityPkg.dec

[LibraryClasses]
#Depends on the Phase
#AmiDxeLib
#AmiPeiLib

使用方式
STrace("[DBG] Checkpoint = %x\n",Checkpoint);
STrace("[DBG] Checkpoint \n");

============================================
有些 Module MODULE_TYPE = BASE [Libary]
PEI 或 DXE 都有可能會用到 照上面加法會 Compile Failed

若要在 DXE 時 Trace 
.C
#include <AmiDxeLib.h>

.inf
[LibraryClasses.X64]
  AmiDxeLib

============================================
有些檔案已經有一些 TRACE 了
可以直接用 Macro 轉換成 STrace
就不用自己在寫一次

#ifdef PEI_TRACE
#undef PEI_TRACE
#define _UNWRAP(PrintLevel, PeiServices, ...) STrace(##__VA_ARGS__)
#define PEI_TRACE(Expression) _UNWRAP Expression
#endif

#ifdef TRACE
#undef TRACE
#define _UNWRAP(PrintLevel, ...) STrace(##__VA_ARGS__)
#define TRACE(Expression) _UNWRAP Expression
#endif

#ifdef DEBUG
#undef DEBUG
#define _UNWRAP(PrintLevel, ...) STrace(##__VA_ARGS__)
#define DEBUG(Expression) _UNWRAP Expression
#endif

#ifdef PCI_TRACE
#undef PCI_TRACE
#define _UNWRAP(PrintLevel, ...) STrace(##__VA_ARGS__)
#define PCI_TRACE(Expression) _UNWRAP Expression
#endif

依樣畫葫蘆即可

沒有留言:

張貼留言