ricky() 20:22:37
編譯的時候可以生成map檔案,然後可以根據客戶反饋的資訊,查詢到出錯的位置,具體到特定的檔案和**行
icoding() 20:23:24
那就是這個是只有**開發者才會有的了?
ricky() 20:24:15
嗯。 走盡天涯路() 20:19:07
vc編的都有嗎
走盡天涯路() 20:19:17
我還沒注意過
ricky() 20:24:45
預設沒有,在設定裡面做一些改動就好了
走盡天涯路() 20:19:56
那裡改改
ricky() 20:26:42
在 vc 中,我們可以按下 alt+f7 ,開啟「project settings」選項頁,選擇 c/c++ 選項卡,並在最下面的 project options 裡面輸入:/zd ,然後要選擇 link 選項卡,在最下面的 project options 裡面輸入: /mapinfo:lines 和 /map:project_name.map 。最後按下 f7 來編譯生成 exe 可執行檔案和 map 檔案。
ricky() 20:27:02
ma**裡面也可以做類似的設定
走盡天涯路() 20:29:33
e:/>type qw.map
start stop length name class
00000h 001ffh 00200h stack stack
00200h 00269h 0006ah dseg data
00270h 00299h 0002ah cseg code
002a0h 002ddh 0003eh cseg code
program entry point at 0027:0000
走盡天涯路() 20:29:55
每段都看的挺清楚
走盡天涯路() 20:31:54
我用的ma**5
走盡天涯路() 20:32:12
和 vc的map檔案差不多吧
ricky() 20:37:46
可以包含更多的內容
走盡天涯路() 20:33:06
那需要設定嗎
走盡天涯路() 20:33:34
剛才的是x86生成的
走盡天涯路() 20:33:50
不是vc
ricky() 20:40:00
如果是ma**的話,link的時候插入一些連線選項
ricky() 20:40:05
/mapinfo:exports /mapinfo:lines /map:%1.map
ricky() 20:40:35
表示加入exported functions和行資訊
ricky() 20:40:47
這樣可以知道某個函式的入口是多少多少
ricky() 20:41:37
客戶只要報告出錯提示中的記憶體位置,你就可以查詢到最接近的函式入口,知道是什麼函式
ricky() 20:42:33
甚至根據**行資訊,直到崩潰位置在源**中的**行號。
走盡天涯路() 20:37:56
怎麼知道
icoding() 20:43:08
彙編我的硬傷哈...
走盡天涯路() 20:38:33
你找個 簡單的例子看看好吧
ricky() 20:44:03
如果不想自己換算查詢,甚至可以找到查詢map檔案的小工具,現在有這樣的小軟體
走盡天涯路() 20:38:54
我這在網咖 剛用的彙編
走盡天涯路() 20:39:52
我呆抽空看看 map檔案什麼樣
走盡天涯路() 20:40:21
你的方法我記下先
走盡天涯路() 20:40:34
謝謝 ricky
ricky() 20:46:19
不客氣,你可以從網上找乙個叫做maptools的小軟體,我以前都是自己換算的,現在方便多了。
走盡天涯路() 20:41:40
恩, 走盡天涯路() 20:41:55
我去搜搜
Map 原理測試
大家都指導hashmap在儲存的時候都是先計算key的hashcode,來決定儲存的位置,然後再將value存在對應的陣列聯表中entry 這裡我就不細說了,都可以參考,特別是第二篇裡面提到鍊錶是為了儲存同乙個hashcode的,這裡我不太贊同這種表達,明明是取模運算下來決定是哪個陣列下標,怎麼能說...
檔案幫助類
public class filehelper else console.writeline request header console.writeline ctx.request.headers.tostring 設定返回內容的mime型別 content disposition attachm...
CHM幫助檔案
在visual c 6中呼叫html help沒有現成的函式,需要呼叫htmlhelp 這個api函式。而在呼叫這個函式之前,還需要在你的工程中加上htmlhelp的庫和標頭檔案 1.指定htmlhelp.h的路徑。選擇選單 project settings.開啟 project settings ...