成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們一起聊聊如何使用Windbg查看C#某個線程的棧大小 ?

開發 前端
每一個線程都有一個叫 TEB(Thread Environment Block) 的線程環境塊數據結構,這個結構中有一個叫做 NT_TIB 的結構,它里面有兩個字段分別為 StackBase 和 StackLimit,前面叫做棧基址,也就是棧頂,后者叫做 棧邊界 。

每一個線程都有一個叫 TEB(Thread Environment Block) 的線程環境塊數據結構,這個結構中有一個叫做 NT_TIB 的結構,它里面有兩個字段分別為 StackBase 和 StackLimit,前面叫做棧基址,也就是棧頂,后者叫做 棧邊界 ,因為??臻g是向小地址增長的,所以用 StackBase - StackLimit 就能算出所謂的棧內存大小,接下來我們用 windbg 演示一下。

一:windbg 演示

1. 使用 !teb 命令

大家可以用 windbg 直接調試你的程序,我手里剛好有一個 dump 文件,這里就從主線程看起吧。

0:000> ~0s
ntdll!NtWaitForSingleObject+0x14:
00007ffe`28b9fa74 c3              ret
0:000> !teb
TEB at 000000b4da0ae000
    ExceptionList:        0000000000000000
    StackBase:            000000b4d9fa0000
    StackLimit:           000000b4d9f98000
    SubSystemTib:         0000000000000000
    FiberData:            0000000000001e00
    ArbitraryUserPointer: 0000000000000000
    Self:                 000000b4da0ae000
    EnvironmentPointer:   0000000000000000
    ClientId:             0000000000000c74 . 00000000000041a4
    RpcHandle:            0000000000000000
    Tls Storage:          000001f90edad1d0
    PEB Address:          000000b4da0ad000
    LastErrorValue:       0
    LastStatusValue:      103
    Count Owned Locks:    0
    HardErrorMode:        0

從輸出看兩個值分別為:StackBase=000000b4d9fa0000 和 StackLimit=000000b4d9f98000,那它的大小就是 32768byte = 32k。

0:000> ? 000000b4d9fa0000 - 000000b4d9f98000
Evaluate expression: 32768 = 00000000`00008000

這里要提醒一下,操作系統的內存頁是 4k 為一個粒度,也就說所有的輸出結果肯定是4k的倍數,比如當前??臻g就是 8 個內存頁。

2. 查看 NT_TIB 結構

剛才用的是快捷命令,接下來我們直接查看 _TEB 結構下的 NT_TIB struct 結構變量。

0:000> .thread
Implicit thread is now 000000b4`da0ae000
0:000> dt _NT_TIB 000000b4`da0ae000
combase!_NT_TIB
   +0x000 ExceptionList    : (null) 
   +0x008 StackBase        : 0x000000b4`d9fa0000 Void
   +0x010 StackLimit       : 0x000000b4`d9f98000 Void
   +0x018 SubSystemTib     : (null) 
   +0x020 FiberData        : 0x00000000`00001e00 Void
   +0x020 Version          : 0x1e00
   +0x028 ArbitraryUserPointer : (null) 
   +0x030 Self             : 0x000000b4`da0ae000 _NT_TIB

可以看到,上面的兩個值和 !teb 顯示的一模一樣。

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2024-11-28 09:57:50

C#事件發布器

2025-01-09 07:54:03

2023-10-10 08:00:07

2023-12-28 09:55:08

隊列數據結構存儲

2025-02-13 09:32:12

C#重寫override

2024-05-29 13:18:12

線程Thread?方式

2024-08-26 08:34:47

AES加密算法

2024-12-10 00:00:25

2022-09-07 07:27:36

函數元素

2023-07-11 08:34:25

參數流程類型

2024-12-23 10:20:50

2024-08-30 11:00:22

2023-10-31 09:04:21

CPU調度Java

2023-08-10 08:28:46

網絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-06-30 08:18:51

敏捷開發模式

2022-05-24 08:21:16

數據安全API

2023-09-10 21:42:31

2022-10-08 00:00:05

SQL機制結構

2024-11-27 16:07:45

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩在线一区 | 亚洲精品乱码久久久久v最新版 | aaaa一级毛片| 欧美精品在线播放 | 亚洲人人| 亚洲色综合 | 国产91久久久久久久免费 | 日韩淫片免费看 | 亚洲精品久 | 天堂视频免费 | 成人久久网 | 亚洲+变态+欧美+另类+精品 | 亚洲精品乱码久久久久久久久久 | 国产在线1 | 亚洲精品成人网 | 97天天干 | 欧美一区二区三区视频在线观看 | 欧美日韩在线一区二区 | 天天久久 | 午夜免费在线观看 | 中文字幕成人av | 久久天天躁狠狠躁夜夜躁2014 | 国产伦精品一区二区三区四区视频 | 精品一二区 | 亚洲一区二区久久 | 国产高清在线精品一区二区三区 | 国产视频精品免费 | 精品一区二区三区91 | 天天爽天天操 | 日韩av成人在线观看 | 91网在线观看 | 欧美日一区二区 | 久久人爽爽人爽爽 | 国产精品区一区二区三区 | 亚洲精品二区 | 2019天天干夜夜操 | 97人人澡人人爽91综合色 | 日韩中文字幕免费在线 | h片在线免费观看 | 夜夜夜夜夜夜曰天天天 | 精品国产一区二区三区免费 |