新四季網

對計算機軟體系統崩潰原因進行自動分析的方法

2023-05-22 09:15:26

專利名稱:對計算機軟體系統崩潰原因進行自動分析的方法
技術領域:
本發明涉及計算機軟體系統維護領域,尤其涉及一種對計算機軟體系統崩潰原因
進行自動分析的方法。
背景技術:
計算機的軟體系統在運行過程中,會因為各種未知因素而產生異常,最終造成應 用程序崩潰或作業系統藍屏,崩潰分析技術是指,對軟體系統運行出錯後生成的崩潰轉儲 文件(dump)進行分析和統計,並從中找出崩潰發生時的地址及其相關代碼行,從而為解決 軟體系統故障提供可信的依據。目前大多數已知的崩潰分析僅僅實現了崩潰文件的收集和 異常點的統計(利用的是軟體系統崩潰時候的異常指針實現),而且均未提供針對系統藍 屏以後的內核態崩潰轉儲文件的分析功能。

發明內容
本發明的目的是克服現有技術中的不足,提供一種對計算機軟體系統崩潰原因進 行自動分析的方法,使用該方法可以自動對崩潰轉儲文件進行分析,並且獲取崩潰函數和 崩潰模塊,進而獲知多項具體的崩潰信息,便於對各種不同崩潰信息的統計。
為了實現上述目的,採用以下技術方案 對計算機軟體系統崩潰原因進行自動分析的方法,其包括如下步驟
a、打開崩潰轉儲文件; b、分別檢索每個處理器每個線程的堆棧信息,對於用戶態崩潰轉儲文件尋找用戶 態的異常錯誤觸發函數;對於內核態崩潰轉儲文件尋找內核態的異常錯誤觸發函數;
c、根據搜索到的異常錯誤觸發函數,檢查異常發生時刻的上一個調用函數,如果 這個調用函數是一個有效的函數名,則暫定該調用函數為崩潰函數,把該調用函數隸屬的 模塊暫定為崩潰模塊; d、根據獲得的崩潰函數和崩潰模塊獲取崩潰信息,並將崩潰信息存儲至資料庫。 進一步的技術方案是, 在步驟a和步驟b之間還包括步驟al : al 、給崩潰轉儲文件進行唯一命名。 再進一步的技術方案是, 在步驟al和步驟b之間還包括步驟a2 : a2、加載調試符號文件。 上述方法利用Windows作業系統提供的調試機制,自動對崩潰轉儲文件中保存的
崩潰發生時的內存數據進行分析,並回溯出函數調用序列、寄存器數值、崩潰發生時加載的
模塊信息、崩潰發生的地址信息及其相關系統,從中找出導致崩潰發生的原因,可以為後續
的軟體故障分析及軟體質量評估提供可信的依據。本發明方法的主要優點為 1、基於Windows調試技術技術,把一系列的分析流程自動化,並根據分析結果進行自動取捨,智能選取分析操作命令,有效的解決了崩潰轉儲分析中對操作人員的技術要 求過高的問題。 2、支持一系列的崩潰分析規則,根據不同的崩潰流程,使用不同的規則進行分析。
3、支持針對系統藍屏以後的內核態崩潰轉儲文件的分析能夠直接定位到具體的 崩潰函數、代碼行號、崩潰現場的堆棧數據等內容。
具體實施例方式
本發明的方法的原理是基於Windows調試技術及其相應的調試API。 Windows調
試技術內置在作業系統內核裡面,對外提供了一系列的Windows API和組件包。本發明利
用了 Windows調試技術提供的組件包Debugging Tools for Windows (以下簡稱WinDBG)
裡面提供的Windows調試引擎,對崩潰轉儲文件進行自動的分析。本發明方法本身針對的
對象是崩潰轉儲文件。崩潰轉儲文件的生成方法主要有以下一些 參Windows錯誤報告機制 MiniD卿WriteD卿Windows API 參讀取崩潰進程的內存 參應用程式調試器 利用上述方法生成崩潰轉儲文件以後,就可以利用下面介紹的方法進行崩潰轉儲 的分析過程了。 對計算機軟體系統崩潰原因進行自動分析的方法,其包括如下步驟
a、打開崩潰轉儲文件,檢查文件的合法性和有效性;
al、給崩潰轉儲文件進行唯一命名以便後續文件的管理; a2、加載調試符號文件;調試符號文件是將被調試程序的二進位信息與源程序代 碼聯繫起來的橋梁,調試符號文件中記錄了變量、類型、函數定義、原始碼行等信息。
a3、檢查崩潰發生時刻的軟體運行環境,對於x64系統,如果運行在WoW64環境下, 則進行32位-64位運行環境切換,否則不進行環境切換。 b、分別檢索每個處理器每個線程的堆棧信息,對於用戶態崩潰轉儲文件尋找用戶 態的異常錯誤觸發函數;對於內核態崩潰轉儲文件尋找內核態的異常錯誤觸發函數;如果 沒有找到異常錯誤觸發函數,跳轉到步驟c2。 c、根據搜索到的異常錯誤觸發函數,檢查異常發生時刻的上一個調用函數,如果 這個調用函數是一個有效的函數名,則暫定該調用函數為崩潰函數,把該調用函數隸屬的 模塊暫定為崩潰模塊; cl、如果步驟c找到的崩潰模塊或者崩潰函數屬於信任模塊列表,那麼繼續檢查 步驟b中搜索到的異常錯誤觸發函數所在崩潰發生線程的再上一個調用函數,直到所檢查 到的調用函數及其所在的模塊為非信任模塊,把這個最後檢查到的函數定為崩潰函數,該 崩潰函數隸屬的模塊記為崩潰模塊。所說的信任模塊列表中包含多個信任模塊,這些信任 模塊是指編程人員認為可以確定為不可能是導致系統崩潰的模塊;如果該過程結束後沒有 找到崩潰函數,轉到步驟c3 ;如果找到崩潰函數,進入步驟d。 c2、根據寄存器的值獲得崩潰地址、異常錯誤代碼,然後根據崩潰地址,利用 Windows調試引擎提供的API和命令對崩潰轉儲文件進行原始調用棧分析,獲取最近的崩潰模塊和最近的一個調用函數,並把最近的一個調用函數記為崩潰函數,把這個函數隸屬 的模塊記為崩潰模塊;如果該過程結束後沒有找到崩潰函數,轉到步驟c3 ;如果找到崩潰 函數,進入步驟d。 c3、對崩潰時候的崩潰地址進行反彙編,檢查是否存在可以標識出崩潰函數的信 息,如果該過程結束後沒有找到崩潰函數,轉到步驟c4 ;如果找到崩潰函數,進入步驟d。
c4、那麼將崩潰函數記錄為未找到狀態,把崩潰模塊記錄為異常發生時刻線程所 屬的模塊。 d、根據獲得的崩潰函數和崩潰模塊獲取崩潰信息,並將崩潰信息存儲至資料庫。
目前已知用戶態的異常錯誤崩潰觸發函數如下,並會根據作業系統的更新而不斷 的改變 kernel32. dll提供的UnhandledExc印tionFilter函數、kernel32. dll提供 的FatalAppExitW函數、ke潔132. dll提供的FatalAppExitA函數、ke潔132. dll提供 的RaiseException函數、kernelbase. dll提供的RaiseException函數、ntdll. dll提 供的NtRaiseHardError函數、ntdll. dll提供的NtRaiseExc印tion函數、ntdll. dll提 供的KiUserExc印tionDispatcher函數、CxxThrowExc印tion函數、ntdll. dll提供的 TppExc印tionFilter函數、ntdll. dll提供的TppWorkerpI騰rExc印tionFilter函數、 except—handler函數、exc印t—handler2函數、exc印t—handler3函數、report—failure函 目前已知內核態的異常錯誤崩潰觸發函數如下,並會根據作業系統的更新而不斷 的改變Windows內核提供的KeBugCheck、 KeBugCheckEx、 KeBugCheckEx2、 KiTrap、
DbgBreakPoint、 DbgUserBreakPoint、 ExpRaiseHardError、 ExpSystemErro:rHandle:r、
PoShutdownBugcheck、 KeBugCheck、 KiBugCheck函數。
步驟d中所述崩潰信息包括下列信息中的至少一種; 1)崩潰發生時間; 2)作業系統; 3)處理器數目和類型; 4)崩潰上下文進程名字; 5)崩潰模塊名字; 6)異常代碼和異常原因; 7)崩潰的指令地址和模塊偏移地址; 8)崩潰模塊路徑信息; 9)崩潰模塊文件版本信息、產品版本信息等能夠標識文件屬性的信息;
10)崩潰發生時候的各線程堆棧信息;
11)寄存器信息; 12)以及其他有助於進行崩潰統計的信息。 其中,第l)-3)中崩潰信息可以從崩潰轉儲文件中獲得,而其他崩潰信息則需要 在獲取崩潰函數和崩潰模塊後才能獲得。 上述步驟c2的具體過程是,利用調試引擎命令和API,獲取崩潰線程的EBP寄存器指向的棧地址,然後利用調試引擎命令和API枚舉原始調用棧信息,得出形如下面的列表
0239ff08 0239ff48
kernel32 ! He即Free+0x14












0239fef8 0239ffl0 0239ffl4 0239ffl8 0239fflc 0239ff20 0239ff24 0239ff28 0239ff2c 0239ff30 0239ff34 0239ff38 0239ff3c
75e79a26 01f4000Q
01ae4c08 582b040a 01af2868 01f425a8 0239ff80
kavevent+0x4c08
kavevent+0x12868
01ae5a53 0239ff70
kavevent+0x5353
然後從上到下,逐行檢測是否有模塊名稱(模塊名稱形如kernel32 ! HeapFree+0x14),如果有,則檢查這個模塊是否是信任模塊,如果是,則繼續檢查下一行。如 果不是信任模塊,那麼最先找到的一個模塊就是崩潰模塊,這個模塊的偏移地址就是崩潰 地址。 下面分別針對內核態轉出文件和用戶態轉儲文件進行示例講解。
內核態 我們會檢查callstack裡面類似nt ! KeBugCheck(內核態的異常錯誤觸發函數) 的函數,例如下面的nt ! KeBugCheckEx,如果發現有這個函數,那麼我們會往下檢查堆棧 調用, 00 ae9c01d8 8054c583 000000c2 00000007 00000cd4nt ! KeBugCheckEx+Oxlb 01 ae9c0228 ba623392 e39c8428 ExFreePoolWithTag+0x2a3 02 ae9c0244 ba6230f8 e3a89008 c0000001 DeleteProcessObject+0x52[e:\build\src\kavprocessm. c@1416]
03 ae9c0254 ba623肌0 e3a89008 e3a89008 KxEReleaseProcessObject+0x58
[e:\build\src\kavprocessm. c@1308]
04 ae9c0268 ba623d96 00000d90 KxERemoveProcessObject+Oxb0
[e:\build\src\kavprocessm. c@1791]
05 ae9c02b0 ba7481bl rocessNotifyRoutine+0x276
[e:\build\src\kavprocessm. c@1953]
00000000 OOOOOOOOnt !
ae9c0268kavpm !
01000064kavpm !
ba752e00kavpm ! KxECreateP
06 ae9c02c8 805d2b60 00000d90 OOOOOdbO OOOOOOOOkavuty ! StubCreat
eProcessNotifyRoutine+0x61 [e:\build\build\src\kavutynr. c船O] 07 ae9c02ec 805d3672 00000001 00000008 87ff7cd0nt ! PspExitProcess+0x5e 例如上面的第OO行,觸發了一個異常函數nt ! KeBugCheckEx,那麼我們會檢索 後面的堆棧調用,由於nt模塊屬於信任模塊,所以01行被忽略,檢查02行的時候,kavpm 屬於非信任模塊,因此kavpm被記做崩潰模塊,kavpm裡面的DeleteProcessOb ject函數被 記做崩潰函數。崩潰地址為kavpm! DeleteProcessOb ject+0x52。對應的具體代碼行是 e:\build\src\kavprocessm. c文件的第1416行代碼。nt是nt內核的縮寫,在不同的環境 下面可會g是ntosktrnl. exe、 ntkrnlmp. exe等不同的文件名。在內核態裡面,除了常見的KeBugCheck、 KeBugCheckEx、 KeBugCheckEx2、 KiTr即 等常見的異常錯誤觸發函數,還有類似的一些變形,例如KiTr即OO等。
用戶態 崩潰轉儲裡面的callstack形如下面的樣子,kernel32 ! RaiseExc印tion是一 個異常錯誤觸發函數,而調用RaiseExc印tion的也是一個在列表裡面的異常錯誤觸發函 數—CxxThrowExc印tion。我們枚舉的時候,會把00行和01行過濾掉,然後發現02行是 kastraydll不是信任模塊,因此記做崩潰模塊,由於崩潰模塊缺乏符號文件,因此無法定位 函數名和代碼行,只能給出崩潰的偏移地址kastraydll+0x2acd7 00 016c56e8 01548e69 e06d7363 00000001 00000003kernel32 ! RaiseExc印tion+0x53 01 016c5720 0144acd7 016c5734 0145bad4 01435c2amsvcr80—1520000 ! —CxxThrowExc印tion+0x46 [f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\throw. cpp@161] 02 016c572c 01435c2a 8007000e 01435c64
OOOOOOOOkastraydll+0x2acd7 03 016c5730 8007000e 01435c64 00000000 016c577ckastraydll+0xl5c2a04 016c5734 01435c64 00000000 016c577c 016cfddc 0x8007000e05 016c5738 00000000 016c577c 016cfddc
01466758kastraydll+0xl5c64 以上實施例僅用以說明而非限制本發明的技術方案。不脫離本發明精神和範圍的 任何修改或局部替換,應涵蓋在本發明的權利要求範圍當中。
權利要求
對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,包括如下步驟a、打開崩潰轉儲文件;b、分別檢索每個處理器每個線程的堆棧信息,對於用戶態崩潰轉儲文件尋找用戶態的異常錯誤觸發函數;對於內核態崩潰轉儲文件尋找內核態的異常錯誤觸發函數;c、根據搜索到的異常錯誤觸發函數,檢查異常發生時刻的上一個調用函數,如果這個調用函數是一個有效的函數名,則暫定該調用函數為崩潰函數,把該調用函數隸屬的模塊暫定為崩潰模塊;d、根據獲得的崩潰函數和崩潰模塊獲取崩潰信息,並將崩潰信息存儲至資料庫。
2. 根據權利要求1所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,所述用戶態異常錯誤觸發函數包括kernel32. dll提供的UnhandledExc印tionFilter函數、kernel32. dll提供的FatalAppExitW函數、kernel32. dll提供的FatalAppExitA函數、kerne132. dll提供的RaiseExc印tion函數、kernelbase. dll提供的RaiseExc印tion函數、ntdl1. dll提供的NtRaiseHardError函數、ntdl1. dll提供的NtRaiseExc印t ion函數、ntdll. dll提供的KiUserExc印tionDispatcher函數、CxxThrowExc印tion函數、ntdl1. dll提供的TppExc印tionFilter函數、ntdl1. dll提供的TppWorkerpI騰rExc印tionFilter函數、exc印t—handler函數、exc印t—handler2函數、exc印t—handler3函數、r印ort—failure函數。
3. 根據權利要求1所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,所述內核態異常錯誤觸發函數包括Windows內核提供的KeBugCheck、 KeBugCheckEx、KeBugCheckEx2、 KiTr鄰、DbgBreakPoint、 DbgUserBreakPoint、 ExpRaiseHardError、ExpSystemErrorHandler、 PoShutdownBugcheck、 KeBugCheck、 KiBugCheck函數。
4. 根據權利要求1至3中任意一項所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟a和步驟b之間還包括步驟al :al、給崩潰轉儲文件進行唯一命名。
5. 根據權利要求4所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟al和步驟b之間還包括步驟a2 :a2、加載調試符號文件。
6. 根據權利要求5所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟a2和步驟b之間還包括步驟a3 :a3、檢查崩潰發生時刻的軟體運行環境,對於x64系統,如果運行在WoW64環境下,則進行32位-64位運行環境切換,否則不進行環境切換。
7. 根據權利要求6所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟c和步驟d之間還包括步驟cl :cl、如果步驟c找到的崩潰模塊或者崩潰函數屬於信任模塊列表,那麼繼續檢查步驟b中搜索到的異常錯誤觸發函數所在崩潰發生線程的再上一個調用函數,直到所檢查到的調用函數及其所在的模塊為非信任模塊,把這個最後檢查到的函數定為崩潰函數,該崩潰函數隸屬的模塊記為崩潰模塊。
8. 根據權利要求1至3中任意一項所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟c和步驟d之間還包括步驟c2 :c2、如果沒有找到異常錯誤觸發函數,則根據寄存器的值獲得崩潰地址、異常錯誤代碼,然後根據崩潰地址,利用Windows調試引擎提供的API和命令對崩潰轉儲文件進行原始調用棧分析,獲取最近的崩潰模塊和最近的一個調用函數,並把最近的一個調用函數記為崩潰函數,把這個函數隸屬的模塊記為崩潰模塊。
9. 根據權利要求8所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟c2和步驟d之間還包括步驟c3 :c3、如果步驟c2中未找到崩潰函數,則對崩潰時候的崩潰地址進行反彙編,檢查是否存在可以標識出崩潰函數的信息。
10. 根據權利要求9所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟c3和步驟d之間還包括步驟c4 :c4、如果步驟c3還未找到崩潰函數,那麼將崩潰函數記錄為未找到狀態,把崩潰模塊記錄為異常發生時刻線程所屬的模塊。
11. 根據權利要求7所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,在步驟cl和步驟d之間還包括步驟c5 :C5、如果步驟cl中未找到崩潰函數,則對崩潰時候的崩潰地址進行反彙編,檢查是否存在可以標識出崩潰函數的信息。
12. 根據權利要求1或2或3所述的對計算機軟體系統崩潰原因進行自動分析的方法,其特徵在於,步驟d中所述崩潰信息包括下列信息中的至少一種;1) 崩潰發生時間;2) 崩潰上下文進程名字;3) 崩潰模塊名字;4) 作業系統;5) 處理器數目和類型;6) 異常代碼和異常原因;7) 崩潰的指令地址和模塊偏移地址;8) 崩潰模塊路徑信息;9) 崩潰模塊文件版本信息、產品版本信息等能夠標識文件屬性的信息;10) 崩潰發生時候的各線程堆棧信息;11) 寄存器信息。
全文摘要
本發明涉及一種對計算機軟體系統崩潰原因進行自動分析的方法。對計算機軟體系統崩潰原因進行自動分析的方法,其包括如下步驟a、打開崩潰轉儲文件;b、分別檢索每個處理器每個線程的堆棧信息,對於用戶態崩潰轉儲文件尋找用戶態的異常錯誤觸發函數;對於內核態崩潰轉儲文件尋找內核態的異常錯誤觸發函數;c、根據搜索到的異常錯誤觸發函數,檢查異常發生時刻的上一個調用函數,如果這個調用函數是一個有效的函數名,則暫定該調用函數為崩潰函數,把該調用函數隸屬的模塊暫定為崩潰模塊;d、根據獲得的崩潰函數和崩潰模塊獲取崩潰信息,並將崩潰信息存儲至資料庫。上述的優點是可實現對軟體系統崩潰原因的自動分析。
文檔編號G06F11/36GK101719090SQ20091021434
公開日2010年6月2日 申請日期2009年12月25日 優先權日2009年12月25日
發明者張康宗, 張強, 羅勇, 鄭有勝 申請人:珠海市君天電子科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀