用windbg和VMware虛擬機器調試驅動程式環境配置

Windbg快速鍵:"C:/Program Files/Debugging Tools for Windows/windbg.exe"  -k com:port=//./pipe/com_1,baud=115200,pipe 配置調試版的WinXP:/debug /debugport=com1 /baudrate=115200 配置調試版的Win7:控制台輸入bcdedit /copy {current} /d “Windows Vista Copy”,複製當前OSLoaderbcdedit /

IRQL 插斷要求層級

什麼是IRQL?IRQL是Interrupt ReQuest Level,插斷要求層級。處理器在一個IRQL上執行線程代碼。IRQL是協助決定線程如何被中斷的。在同一處理器上,線程只能被更進階別IRQL的線程能中斷。每個處理器都有自己的中斷IRQL。我們經常遇見的有四種IRQL層級。“Passive”, “APC”, “Dispatch” and “DIRQL”. “DriverEntry”將會在PASSIVE_LEVEL被調用。 #define PASSIVE_LEVEL          

一些使用過的宏和核心功能

#pragma warning(disable:XXXX)禁止某個警告NT_ASSERT( pData );指標是否合法KdPrint(())調試輸出 #define PAGEDCODE code_seg("PAGE")分頁代碼#define LOCKEDCODE code_seg()非分頁代碼#define INITCODE code_seg("INIT")初始化代碼#define PAGEDDATA data_seg("PAGEDATA")分頁資料#define LOCKEDDATA

#pragma指令使用簡介)

#pragma指令使用簡介(轉)轉自http://file.akedu.com.cn/note/blog/more.asp?name=%BF%E1%BF%E1&id="1093"酷酷,謝謝,我一直對這塊不太清楚.請支援酷酷!在編寫程式的時候,我們經常要用到#pragma指令來設定編譯器的狀態或者是指示編譯器完成一些特定的動作.下面介紹了一下該指令的一些常用參數,希望對大家有所協助!       一. message 參數。message 它能夠在編譯資訊輸出窗

快速上手的幾個WinDbg命令

1 :使用!sym noisy 命令以獲得關於WinDbg嘗試擷取symbols的更多資訊。    !sym noisy    2 :!lmi 查看WinDbg知道多少關於ntoskrnl的資訊。      !lmi kernel32     3 :.srcpath e:/Win2003SP1它的意思是:想要source檔案,請查看e:/Win2003SP1目錄。4 :下斷點:bu sioctl!DriverEntry    bu (“Breakpoint

驅動中讀寫檔案

// 開啟指定檔案HANDLE CKOpenFile( PUNICODE_STRING punFileName ){HANDLE file_handle = NULL;NTSTATUS status;OBJECT_ATTRIBUTES object_attributes;IO_STATUS_BLOCK io_status = { 0 };InitializeObjectAttributes(&object_attributes,punFileName,

我的3D Engine ( ALGA )目前進展情況

      目前我的3D引擎大致已經把檔案處理相關的功能完成, 上面一個是記錄檔管理. 暫時寫成HTML的吧,想換再加.下面是兩張我的打包工具的.寫完了打包功能,就順便把工具一起給寫了.採用了壓縮及相關的結構儲存處理.以後資源這些封裝會好一點了.加油! 此工具可以大量匯出匯入.Engine 在相應的某些關鍵位置使用了彙編支援. 下一步打算把XML解析寫了,檔案處理就暫時實現這麼多. 希望能夠比以前的東西更成熟. 同時感謝公司讓我學了很多東西..... 

InterLockedIncrement 和 InterLockedDecrement處理線程訪問

   前面已經講過volatile關鍵字,當我們在處理多線程或者類比一個類似COM的引用計數時,我們為了防止多個線程同時訪問一個變數,導致不可預料的結果時。我們便可以方便的使用InterLockedIncrement  和 InterLockedDecrement 來對這個變數進行鎖定訪問: long volatile lReference;InterlockedIncrement( &lReference );  // 對這個引用計數進行鎖定並ADD

手工實現位元組對齊 及 代碼品質思考

在遊戲編程中,我們經常聽到序列化這個詞彙。在一些網路通訊和資料處理時,我們便會用到序列化。這裡先不具體說明序列化。這裡只說序列化過程中可能用到的位元組對齊的問題: 我們首先是定義了這樣一個宏: #define ALIGN( __size, __bits )  ( ( ( ( __size - 1 ) >> __bits ) + 1 ) << __bits ) 我們在使用的時候: DWORD dwSize = ALIGN( dataSize, 2

儘早發現堆破壞

Chromium程式在運行起始位置有代碼base::EnableTerminationOnHeapCorruption();void EnableTerminationOnHeapCorruption() {  // Ignore the result code. Supported on XP SP3 and Vista.  HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL,

【GOF設計模式之路】– 開篇

時間過得真快,距離連載完【C/C++語言入門篇】已經6個月之久了。感謝長期以來支援我的朋友們,同時也感謝路過批評與建議的朋友們,如果沒有你們,我想我將沒有收穫,也將沒有信心堅持在這裡。 近兩個月一直忙著各種事情,加之要將本質工作做好,寫博的時間基本都抽不出來了。有的時候想寫,但又似乎提不起精神,比起兩年前大二時期的精力,簡直就沒得比。雖然不知道這個系列是否能夠有足夠的時間寫完,但是我想先將系列的開篇下撂在這兒,也算是給自己壓力,不管怎麼都不能丟下記錄的習慣。 回到正題,這個系列寫設計模式的原因有

Chromium原始碼及編譯環境的配置

1、強烈建議仔細閱讀官方文檔,chromium項目一直在快速發展,編譯配置也可能更新。本文檔不與官方文檔同步更新,因此僅供參考。2、必須要4G記憶體,我最開始使用2G記憶體有個工程串連失敗,導致後面部分工程失敗。編譯中8G記憶體都會消耗完,所以建議配置8G及以上記憶體。3、官方強烈建議使用64位系統。最好是Win7 64位系統,如果使用XP 32位系統,尤其是Ghost版的XP 32位系統,後面處理原始碼時會遇到一些問題。4、安裝VS2008,必須安裝X64編譯工具。5、如果安裝的是VS2008

活著,意義,偶像

很多時候,我都會想,人活著到底是為了什嗎?為了名利?為了生活?為了追求?為了責任?或者就為了簡簡單單的活著? 這個問題可能會將很多人給問住了,可能在你活了十多年,甚至活了幾十年都不知道這一輩子到底是為了什麼而活著。有時候覺得多讀一些書是好事,有時候又覺得少讀一些書未必是件壞事,有很多人學識見識都比較低,他們想得比較簡單,人活著就是為了活著,不為別的,能吃飽飯,能在某個時候吃上一頓美餐也覺得打心底裡滿足。 我相信很多人都有一種感觸,那就是小時候很快樂,小時候活得很簡單,不用考慮太多人生的意義,作為

HTTP狀態代碼及含義大全

HTTP狀態代碼及含義大全當使用者在防問Internet資訊服務(IIS)的伺服器上的內容時時,IIS伺服器響應請求,會自動返回一個表示該請求的狀態的數字代碼,提供關於相關請求的狀態資訊。同樣當搜尋引擎蜘蛛在抓取的過程中,伺服器也會相關的http狀態代碼,通過瞭解http狀態碼,可以更詳細的分析日誌中的訪問情況,下面Seoer惜緣收集的http狀態碼含義表與部分解決方案:  100 - 表示已收到請求的一部分,正在繼續發送餘下部分。  101 - 切換協議。  2xx -

new操作符內部原理(一)

寫了這樣一段代碼,我們來做分析:#include <iostream>int main( void ){    int* ptr = new int[ 5 ];    for ( int i = 0; i < 5; i++ )    {        ptr[ i ] = i + 1;        std::cout << ptr[ i ] << std::endl;    }} 我們new了5個資料的int類型空間,我們然後來看記憶體裡面的分布:  

new操作符內部原理(二) 及 delete和free

前面我們說了new在分配空間的一些細節,這裡作一些補充。其實我們在調用new時,在他的地層重載運算子裡面是這樣實現的:void *p; while ((p = malloc(size)) == 0)  if (_callnewh(size) == 0)   _STD _Nomemory(); return (p); 可以看出它是直接調用了我們C語言中常用的malloc函數來實現。由此我們可以知道malloc也同樣會分配一個塊頭。32Byte + dataSize + 4( 0xfdfdfdfd

今早還算早

       當兄弟們還在打呼嚕的時候我已經在洗溯了。哎。。上班好象就少了幾分自由。。       每周還是想回學校,感覺自己還不習慣不當學生。昨天回去填了個申請,回去是一種心情。第二天就是另外一種心情。6點多鐘就來到了校門口等車,風好大。。好不容易等到車了,還得坐一個多小時還得轉車一次。累啊!堵車就更慘了。。來到公司就8點了。還算早,還有一個小時閑暇時間。       呼呼。。

去年國慶寫的個撞球

             這個撞球DEMO,用的D3D+C++寫成的,大概集中寫了一周多一點時間。也算是那個時候對D3D的一定認識的結果吧。還有很多不足。      1。裡面的素材全部是從網上搜集。      2。AI只實現了一個難度,本來打算再寫下去的,哎。。。貌似有心而力不足。沒那麼多時間去完善了。            就這麼個東西,老婆居然能打上癮,可能也是我想進一步完善的原因之一吧。      3。裡面的碰撞檢測都是通過距離檢測實現。先放這吧。。

寬字元處理函數與窄字元處理函數對應表

字元分類:  寬字元函數普通C函數描述 iswalnum()  isalnum() 測試字元是否為數字或字母 iswalpha()  isalpha() 測試字元是否是字母 iswcntrl()  iscntrl() 測試字元是否是控制符 iswdigit()  isdigit() 測試字元是否為數字 iswgraph()  isgraph() 測試字元是否是可見字元 iswlower()  islower() 測試字元是否是小寫字元 iswprint()  isprint()

處理序間通訊之訊號

作者:孫曉明,華清遠見嵌入式學院講師。UNIX上處理序間通訊的方式有多種,早期的有無名管道、有名管道和訊號,後來又引入了IPC對象和通訊端。訊號是在軟體層次上對中斷機制的一種類比,是一種非同步通訊方式。訊號可以直接進行使用者空間進程和核心進程之間的互動,核心進程也可以利用它來通知使用者空間進程發生了哪些系統事件。使用者進程對接收到的訊號有三種處理方式:預設處理:Linux對每種訊號都定義了預設的操作        忽略訊號:對接收到的訊號不做任何處理        捕捉訊號:預先定義訊號處理函數

總頁數: 61357 1 .... 12743 12744 12745 12746 12747 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.