目前日期文章:200808 (3)

瀏覽方式: 標題列表 簡短摘要
據報導說今年游泳的風雲人物 Michael Phelps 座右銘是"如果你休息1天實力就會倒退2天"(找不到原文,不知是否有人可以提供一下)。我記得Armstrong在準備六連霸的時候也說過,他如果休息一天,就要花兩天的時間才能補的回來。最近台攀上也有人提到一個例子

"LT 是美國朋友 Jim Ratz 的妻子,中文名朱藍天,所以 L(藍)T(天)。她一直是 Lander 鎮的游泳教練,自己的女兒 Mei 七歲起跟著練習,週一到週五每天一次,早上五點起床,十年來如一日, Mei 去年以州冠軍拿全額獎學金進入科羅拉多州立大學。"

Arsenal 的當家射手法國人Henry,記者問他平常在家裡做什麼?他說看電視看比賽,時候到了睡覺。



所以我從來不相信SLB CPBL那些人會有多好的表現,有也是仗著比別人多一點的天份,運動員對自身不要求,永遠是三流。


ps:上上星期寫的,不過pixnet 還是不能用windows writer 寫文章...

cmchao 發表在 痞客邦 PIXNET 留言(1) 人氣()

之前jserv寫了篇很有趣的文章(Who Call Me ?),利用一些小技巧去取caller和callee 之間的information。不過每個trace 的地方都還要手動塞code,如果要在往上看再去看stack frame,我對x86實在是很不熟。


今天在寫profiling的東東想到是不是可以用instrumentation(註一)的方式來得到同樣的資訊,把whocallme 的call 塞到每個function裡。原本以為-pg(gprof)可以做得到,因為gprof本來就是利用偷塞一些code來統計資訊,但gcc似乎不允許你塞自已的function。


那有其它的方式嗎?果然gcc support -finstrument-functions這個選項,會在你所有function 前後各塞入一個function,讓user可以蒐集或輸出一些資訊



void __cyg_profile_func_enter (void *this_fn, void *call_site);
void __cyg_profile_func_exit   (void *this_fn, void *call_site);



使用方式呢?這種技巧jserv 去年已經介紹過了,請看這裡。那現在就是把他們組合起來啦,底下是patch


--- ../whocallme/whocallme.c    2008-07-30 13:57:30.000000000 +0800
+++ ../whocallme2/whocallme.c   2008-08-20 17:59:23.000000000 +0800
@@ -60,7 +60,7 @@
{
    int i;
    for (i = 0; i < table_count; i++) {
-       if (addr > fun_table[i].addr) {
+       if (addr >= fun_table[i].addr) {
            if (addr < fun_table[i + 1].addr)
                return fun_table[i].name;
        }
@@ -134,3 +134,12 @@
    qsort(fun_table, table_count, sizeof(FUN_TABLE), compare_function);
    return 0;
}
+
+#define DUMP(func, call) \
+        printf("%s: func = %s, called by = %s\n", __FUNCTION__, func, call)
+
+void __attribute__((__no_instrument_function__))__cyg_profile_func_enter(void *this_func, void *call_site)
+{
+        DUMP(find_function_by_addr((unsigned long)this_func),
+        find_function_by_addr((unsigned long)call_site));
+}


 


在編譯你自已的程式時加入 -finstrument-functions(編譯whocallme.c 的時候不用,不然每個function 都要再補上no_instrucment_function的 attribute


,然後輸出就會長成這樣,


__cyg_profile_func_enter: func = test, called by = main
__cyg_profile_func_enter: func = test_a, called by = main
__cyg_profile_func_enter: func = test_b, called by = test_a
__cyg_profile_func_enter: func = test, called by = test_b
__cyg_profile_func_enter: func = test_c, called by = test_a
__cyg_profile_func_enter: func = test_b, called by = main
__cyg_profile_func_enter: func = test, called by = test_b
__cyg_profile_func_enter: func = test_c, called by = main


註一:instrumentation 要翻成啥?,"中山山"好像不錯

cmchao 發表在 痞客邦 PIXNET 留言(0) 人氣()

風美溪上東南峰

一.日期:2008.08.02 天氣:小晴天
二.人員:軟趴趴、記錄:軟趴趴
三.交通:bubu x 1
四.行程簡介: 上次去走哈加縱走有看到往東南峰的路條,上面寫路跡不明,回來找了一下記錄發現最近的記錄已經是兩年前了,想來玩玩看。
五.參考記錄:2006.02.1 加里山走東南峰 

0904   0 k 鹿場登山口
0907  哈堪尼路牌
0909  左插路,延著水管繼續走(註一)
0927  接溪
0941  左腰繞,前有三人高巨石,接著路跡就不見了,左繞右繞...
1014  上切到正路,有路條,這條路那來的 ???
1019  接溪,中有巨石分流,右主流,至此開始延溪谷上
1042  深太深啦,換溯溪鞋上溯,一是右岸二是左岸,一二一,到處都是青蛙
1118  左有路條(註二)
1122  叉路往上哈堪尼
1126 傳說中獵寮,其實只有二根木頭可以搭雨布而以,有人生火剛走,匯流口在那呢?旁邊有路條,是這邊嗎?再往上走走看
1136  溪流變小,而且流向已往東,應該超過匯流口,口頭
1148 回獵寮吃飯睡覺
1244 出發,路有二條,一條就在獵寮旁,一條在旁邊往上流10m的地方可是有路條,我選後面那條走,但是是個錯誤,走100m就要上切,機車,
          前面那條應該是對的
1302 上切後應該在一小陵上,之後向左腰繞就碰到鐵軌
1305 鐵軌路很大條阿(註三),可是好像不對,回頭,上切很像路的地方
1313 上切到T叉路,有路條,左往西南,右往西北,取左,事後證明可能選錯了(如果是要上東南峰的話)
1316 倒木,穿樹洞
1323 鐵備倒工竂
1325 溪溝,水少
1334 幹,水壺不見了,回來再來找吧,反正前面一點點就有水
1352 過乾溪溝
1356 叉路,右(東北),直(西),從路條叉路走來,路都超大條,但是參考記錄上的地行都沒看到,但地勢緩緩上升,如果繼續前行,應可接到陵線,
          不然硬切上去也可以啦,不會很陡
1405 兩邊都走了一段,前路依舊不明,時間到了,回撤
1410 乾溪
1433 有水溪,水袋裝水
1447 路條T叉,取右往下
1507 找無路,又走到有鐵軌的地方,但是我沒走過這還碰到沒碰到的有水溪溝,看一下高度差只有100,而且上溯的時候並沒有看到週圍的支流陡降的地型,
          那就沿溪溝下切吧(不過其實是自已有點急了)
1534 從找不到的匯流口出來,在往加里山的路條前,休息,切溪溝累死了
1555 出發,把長褲脫了,穿著內褲下溯,因為褲管濕濕的很煩,而且應該不會碰到人啦
1652  到 1019 處,換鞋,腰繞上
1728  正路好走到爆炸
1731 0K

註一:請一要定要走這條路,回程就是走這,不要沿水管走,一直跟水管玩鞍馬很煩人
註二:我上溯的部份應該還有腰繞路,但是我想玩水..:>,而且在上溯的路上一直有藍天隊的路條,他們應該也沒腰繞
註三:鐵軌路不知道延伸多遠,應該有接到加里山五號樁那段吧,有機會可以來探探


心得:這條路不適合在豐水期來,覺得一定要下水,而且實在不知道記錄上怎麼可以用1:20 分就走到匯流口,走了二個半小時@@~,是因為溯溪比較慢嗎?


開始上溯的地方,休息一下



一堆青蛙,大部份是下面灰色這種


無敵深潭,深應該有3m,長寬應該 6m * 8m 以上,好想下去游阿


是青竹絲嗎?看到不尾巴無法確定,這麼多青蛙沒有一兩隻蛇那就奇了

cmchao 發表在 痞客邦 PIXNET 留言(0) 人氣()

找更多相關文章與討論