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

依樣畫葫蘆即可

Hyphen 連字號 使用方式

There is an English grammar rule

Native speakers know it, because they follow it, but they usually can't state it.
Non-native speakers need to be taught the rule, however, because it's not obvious.

When a noun modifier consists of more than one word, it goes after the noun it modifies.
When a noun modifier consists of only one word, it goes before the noun it modifies.
Mnemonic: an eleven-year old boy versus a boy eleven years old

簡單說 這是有文法規則的 以英文母語的人都會遵守但不一定講的出為什麼(語言本來就一種感覺咩)

當名詞修飾語由多個單詞組成時,它會在它修飾的名詞之後。

當名詞修飾語僅包含一個單詞時,它會在它修飾的名詞之前。

助記:an eleven-year-old boy versus a boy eleven years old

eleven-year-old 是 形容詞,形容詞沒有單複數之分,不用加 S
用來形容 boy ==> 11歲的男孩

a boy eleven years old 用

year-old 是形容詞,指 ...歲的XX

形容詞沒有單複數之分,是不用加 S 的

而 .. years old 就是課本裡教的了...在描述一個人幾歲時的用法

例如:I'm 32 years old. (我32歲)

例如:I'm a 32 year-old engineer. (我是個32歲的工程師)


當有hyphen的時候, hyphen連結起來的兩個字
被用來當形容詞, 形容之後的名詞. 但沒有hyphen的時候, 所有的形容詞
都分別用來形容之後的名詞.

small-car factory, 有hyphen, small只形容car, 不形容factory.
我們只知道這是一個生產小型車的工廠, 工廠本身有多大並不知道.
但small car factory, small 形容 factory, car 也形容 factory, 所以我們知道
這是一個小工廠, 也是一個製造車子的工廠.



red herring 紅鯡魚 用法 意思

跟外國人通信看到 "red herring" (紅鯡魚) ?? 我咧不懂啊 什麼是紅鯡魚 ? 但

其實並沒有紅色的鯡魚這種魚,而是說風乾變紅的鯡魚。
風乾的鯡魚味道很重,可以拿來訓練狗憑氣味去找獵物。
有些地方在訓練狗隻追蹤獵物時,會故意在錯誤的道路擺放紅鯡魚,
以測試狗隻會否因紅鯡魚而跟丟獵物。

 red herring或smoke screen都是引入會轉移原本討論焦點的論點 當一個人引入一個會轉移原本焦點的論題,特別是當他故意這樣做的時候,那個人便是red herring

更深入一點來看
red herring
是透過將聽者的注意力引離原本的論題,或者拉向其他論題,來轉移焦點。

Smoke screen
是透過令原本的論題變得異常複雜,直至喪失原本的焦點。
所以,兩者的差異不在於有否轉移焦點,而在於如何轉移焦點。

舉兩個例子來看看,
第一個是關於美國總統克林頓(Bill Clinton)。有不少人說,克林頓對蘇丹發射導彈,其實是用來把民眾視線引離他與萊溫斯基(Monica Lewinsky)外遇事件的紅鯡魚。

第二個關於小布希(George W. Bush)。同樣地,有不少人說小布希攻擊伊拉克其實是為了石油利益、為了完成老布希未完成的政績,所以他高談闊論伊拉克導彈如何威脅美國、伊拉克有核武等等,都不過是煙幕。 從這兩個例子看來,red herring和smoke screen確實有些subtle的分別。

克林頓對蘇丹採取的導彈行動完全脫離了他外遇的論題,是以不同論題將聽眾注意力引離原本的焦點(外遇事件)。

 小布希關於伊拉克如何如何危險的言論,雖然與焦點(他攻擊伊拉克的真正目的)有關,但卻是企圖透過引入大量似乎相關的言論來複雜化焦點,令人忽略他真正的動機。

若果用smoke screen來解釋克林頓的例子,或者用red herring來解釋小布希的例子,雖然都行得通,但就略嫌「勉強」。

紅鯡魚例句:
Agatha Christie utilizes red herrings in her murder mystery novels. As false and conspicuous clues of possible suspects distracted the readers, the hunt for the real murderers became more difficult and exciting.
阿加莎·克里斯蒂在謀殺推理小說中應用轉移注意力(紅鯡魚)。顯眼的假線索讓讀者分心,而追捕真的兇手變得更加困難與令人興奮。

During the election season, the political parties often use sensitive issues, such as same-sex marriage or immigration, as red herrings to divert the public’s attention.
在選舉季節中,各政黨經常使用的敏感問題,比如同性婚姻,或移民(紅鯡魚),來轉移大眾的注意力。