windbg 调试器简明手册——第 7 章——调试器命令——第 5 节——常规扩展命令

   

目录

1.  !acl (Access Control List)(访问控制列表)

1.1  参数

1.2  DLL

1.3  评注

2.  !address (显示目标进程或计算机使用之内存)

2.1  参数

2.2  DLL

3.  !analyze (显示异常或错误检查信息)

3.1  一般参数

3.2  显示参数

3.3  继续异常参数

3.4  DLL

4.  !asd (显示故障条目)

4.1  DLL

5.  !atom (显示格式化原子表)

5.1  DLL

6.  !bitcount (位数量计算)

6.1  DLL

7.  !blackboxbsd(视条件显示启动状态数据)

7.1  DLL

8.  !blackboxscm(视条件显示SCM信息)

8.1  DLL

9.  !chksym(测试模块有效性)

9.1  DLL

10.  !chkimg(检测文件映像)

10.1  DLL

11.  !cppexr(显示C++异常)

11.1  DLL

12.  !cppexr(显示C++异常)

12.1  DLL

13.  !cpuid(显示处理器信息)

13.1  DLL

14.  !cs(显示临界区)

14.1  DLL

15.  !cxr(显示处理器信息)

16.  !dh(显示图像头)

16.1  DLL

17.  !dlls(显示加载或使用的dll模块)

17.1  DLL

18.  !dml_proc(显示进程列表)

19.  !dumpfa(显示故障分析)

19.1  DLL

20.  !envvar(显示环境变量)

20.1  DLL

21.  !error(显示错误信息)

21.1  DLL

22.  !exchain(显示异常处理程序链)

22.1  DLL

23.  !exchain(显示异常处理程序链)

23.1  DLL

24.  !exr(显示异常处理程序链)

25.  !findxmldata(查找xml数据)

25.1  DLL

26.  !for_each_*命令(执行调试命令方法)

26.1  !for_each_frame(每帧执行调试命令)

26.2  !for_each_function (每函数执行调试命令)

26.3  !for_each_local(每局部变量执行调试命令)

26.4  !for_each_module(每模块执行调试命令)

26.5  !for_each_register(每寄存器执行调试命令)

26.6  DLL

27.  !gflag(每局部变量执行调试命令)

27.1  DLL

28.  !gle(显示当前线程最后一个错误值)

28.1  DLL

29.  !gs(分析 /GS 栈溢出)

29.1  DLL

30.  !gs(分析 /GS 栈溢出)

30.1  DLL

31.  !handle(显示进程句柄)

32.  !heap(堆操作)(重要且常用)

32.  !help(扩展命令之帮助命令)

33.  !homedir(设置默认目录)

33.1  DLL

34.  !hstring(显示 HSTRING)

35.  !hstring2(显示更多 HSTRING)

36.  !htrace(显示句柄栈跟踪)

36.1  DLL

37.  !imggp(显示64位映像全局指针目录条目值)

37.1  DLL

38.  !imgreloc(显示模块重定位前的地址)

38.1  DLL

39.  !kuser(显示共享用户模式页面)

39.1  DLL

40.  !list(重复执行调试器命令)

40.1  DLL

41.  !lmi(显示指定模块的详情)

41.1  DLL

42.  !lui(显示多语言用户界面缓存详情)

42.1  DLL

44.  !obja(在对象管理器中显示对象属性)

44.1  DLL

45.  !owner(显示模块或函数的拥有者)

45.1  DLL

46.  !peb(显示过程环境块中信息的格式化视图)

46.1  DLL

47.  !rebase(搜索指定地址或符号)

47.1  DLL

48.  !rtlavl (显示 RTL_AVL_TABLE 结构的条目)

48.1  DLL

49.  !sd (显示指定地址的安全描述符)

49.1  DLL

50.  !sd (显示指定地址的安全描述符)

50.1  DLL

51.  !sid (显示指定地址的安全标识符)

51.1  DLL

52.  !slist (显示单链表)

52.1  DLL

53.  !sym (控制提示噪声)

53.1  DLL

54.  !teb (显示TEB中信息的格式化视图)

54.1  DLL

55.  !tls (显示TLS图)

55.1  DLL

56.  !token (显示安全令牌对象的格式化视图)

56.1  DLL

57.  !tp (显示线程池详情)

57.1  DLL

58.  !version (显示扩展DLL的版本信息)

58.1  DLL

58.  !winrterr(设置运行时错误调试器报告模式)


        本节介绍用户模式和内核模式调试中常用的扩展命令。调试器会自动加载这些扩展命令的正确版本。除非你手动加载了不同的版本,否则无需跟踪正在使用的 DLL 版本。每一个扩展命令参考主题都列出了公开该命令的 DLL。请使用以下规则确定要从中加载此扩展 DLL 的正确目录:

如果目标计算机运行的是 Microsoft Windows XP 或更高版本的 Windows,请使用 winxp\kdexts.dll、winxp\ntsdexts.dll、winxp\exts.dll、winext\ext.dll 或 dbghelp.dll。

若要手动改变,可以加上扩展DLL的名称作为前缀,例如:

0:000> !Ext.analyze -v

0:000> !Ext.exchain

0:000> !kdexts.help

0:000> !ntsdexts.help

详细参数说明请参见链接:

https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/general-extensions

或者在 windbg 命令窗口中输入 .hh 命令打帮 Debugger 帮助文档。

1.  !acl (Access Control List)(访问控制列表)

    !acl 命令用于格式化和显示访问控制列表 (ACL) 的内容。

!acl Address [Flags]

1.1  参数

(1) Address

    指定 ACL 的十六进制地址。

(2) Flags

如果 Flags 的值为 1,则显示 ACL 的友好名称。此友好名称包括安全标识符 (SID) 类型以及 SID 的域和用户名。

1.2  DLL

    Exts.dll

1.3  评注

    以下示例展示了 !acl 。

kd> !acl e1bf35d4 1

ACL is:

ACL is: ->AclRevision: 0x2

ACL is: ->Sbz1       : 0x0

ACL is: ->AclSize    : 0x40

ACL is: ->AceCount   : 0x2

ACL is: ->Sbz2       : 0x0

ACL is: ->Ace[0]: ->AceType: ACCESS_ALLOWED_ACE_TYPE

ACL is: ->Ace[0]: ->AceFlags: 0x0

ACL is: ->Ace[0]: ->AceSize: 0x24

ACL is: ->Ace[0]: ->Mask : 0x10000000

ACL is: ->Ace[0]: ->SID: S-1-5-21-518066528-515770016-299552555-2981724 (User: MYDOMAIN\myuser)

ACL is: ->Ace[1]: ->AceType: ACCESS_ALLOWED_ACE_TYPE

ACL is: ->Ace[1]: ->AceFlags: 0x0

ACL is: ->Ace[1]: ->AceSize: 0x14

ACL is: ->Ace[1]: ->Mask : 0x10000000

ACL is: ->Ace[1]: ->SID: S-1-5-18 (Well Known Group: NT AUTHORITY\SYSTEM)

2.  !address (显示目标进程或计算机使用之内存)

    !address 显示有关目标进程或目标计算机使用的内存的信息。

(1)  用户模式

!address Address

!address -summary

!address [-f:F1,F2,...] {[-o:{csv | tsv | 1}] | [-c:"Command"]}

!address -? | -help

(2)  内核模式

!address Address

!address

2.1  参数

(1) Address

    仅显示地址空间中包含 Address 的区域。

(2) -Summary

仅显示概要信息。

(3) -f:F1, F2, ...

仅显示由过滤器 F1、F2 等指定的区域。

2.2  DLL

    Ext.dll

3.  !analyze (显示异常或错误检查信息)

    !analyze 程序会显示有关当前异常或错误检查的信息。

(1)  用户模式

!analyze [-v[0..99]] [-f | -hang]

    !analyze [-v[0..99]] -xml [-xmi] [-xcs] [-xmf OutputXmlFile]

!analyze -c [-load KnownIssuesFile | -unload | -help ]

(2)  内核模式

!analyze [-v[0..99]] [-f | -hang]

    !analyze -show BugCheckCode [BugParameters]

    !analyze [-v[0..99]] -xml [-xmi] [-xcs] [-xmf OutputXmlFile]

    !analyze -c [-load KnownIssuesFile | -unload | -help ]

3.1  一般参数

(1) -v[0..99](-v可以看成view的首字母)

    显示详细输出。你可以通过指定 0 到 99 之间的数字来显示更多信息。如果你未指定数字,则默认值为 1。你还可以指定“非常详细”(-vv)来显示所有可用信息。在用户模式下,-v6 将显示全局和每个线程中发现的信息。

(2) -f

生成 !analyze 异常输出。即使调试器未检测到异常,也可以使用此参数查看异常分析。

(3) -hang

生成 !analyze hung-application 的输出。当目标系统遇到错误检查或异常时,请使用此参数。但是,分析应用程序挂起的原因对你的问题更为重要。在内核模式下,!analyze -hang 会检查系统持有的锁,然后扫描 DPC 队列链。在用户模式下,!analyze -hang 会分析线程栈,以确定是否有线程阻塞其他线程。

在用户模式下运行此之前,请考虑将当前线程更改为你认为已停止响应(即挂起)的线程。你应该进行此更改,因为异常可能已将当前线程更改为其他线程。

3.2  显示参数

    -show BugCheckCode [BugParameters]

显示由 BugCheckCode 指定的错误检查的相关信息。BugParameters 最多可指定四个错误检查参数,参数之间用空格分隔。这些参数可用于进一步细化搜索。

3.3  继续异常参数

(1) -c

当调试器遇到已知问题时,程序将继续执行。如果遇到的不是已知问题,调试器将保持在目标程序中断状态。

    你可以使用带有以下子参数的 -c 选项。这些子参数用于配置已知问题列表。它们本身不会触发程序执行。在你至少运行一次 `!analyze -c **** -load` 之前,`!analyze -c` 不会生效。

(2) -load KnownIssuesFile

加载指定的已知问题文件。KnownIssuesFile 指定该文件的路径和文件名。该文件必须为 XML 格式。

    KnownIssuesFile 文件中的已知问题列表将用于所有后续的 -c 命令,直到你使用 -c -unload 或再次使用 -c -load(此时新数据将替换旧数据)。

(3) -unload 

    卸载当前已知问题列表。

(4) -help

在调试器命令窗口中显示 !analyze -c 命令的帮助信息。

3.4  DLL

    Ext.dll

4.  !asd (显示故障条目)

    !asd 会显示从指定地址开始的数据缓存中指定数量的故障分析条目。

!asd Address DataUsed

4.1  DLL

    Ext.dll

5.  !atom (显示格式化原子表)

    !atom 程序显示指定原子或当前进程所有原子的格式化原子表。

!atom [Address]

5.1  DLL

    Exts.dll

6.  !bitcount (位数量计算)

    !bitcount 扩展程序统计内存范围内“1”位的数量。

!bitcount StartAddress TotalBits

6.1  DLL

    Exts.dll

7.  !blackboxbsd(视条件显示启动状态数据)

    !blackboxbsd 程序会在内核模式转储文件中存在缓存的启动状态数据 (BSD) 信息时显示这些信息。该信息取自发生错误检查时保存的内核模式转储文件中的缓存数据,但并非始终可用。

!blackboxbsd

7.1  DLL

    Ext.dll

8.  !blackboxscm(视条件显示SCM信息)

    !blackboxscm 程序会在内核模式转储文件中存在服务控制管理器 (SCM) 信息时显示这些信息。该扩展程序会显示所有存在未完成服务控制请求的服务的名称。这些信息是从发生错误检查时保存的内核模式转储文件中的缓存数据中检索的,但并非始终可用。

!blackboxscm

8.1  DLL

    Ext.dll

9.  !chksym(测试模块有效性)

    !chksym 程序会根据符号文件测试模块的有效性。

!chksym Module [Symbol]

9.1  DLL

Windows 2000:Unavailable

Windows XP:Unavailable

Windows Vista and later:Dbghelp.dll

10.  !chkimg(检测文件映像)

    !chkimg 程序通过将可执行文件映像与符号存储或其他文件存储库中的副本进行比较来检测映像中的损坏情况。

!chkimg [Options] [-mmw LogFile LogOptions] [Module]

10.1  DLL

    Ext.dll

11.  !cppexr(显示C++异常)

    !cppexr 名显示 C++ 异常记录的内容。

!cppexr Address

11.1  DLL

    Ext.dll

12.  !cppexr(显示C++异常)

    !cppexr 名显示 C++ 异常记录的内容。

!cppexr Address

12.1  DLL

    Ext.dll

13.  !cpuid(显示处理器信息)

    !cpuid 名显示有关系统处理器的信息。

!cpuid [Processor]

13.1  DLL

    Ext.dll

14.  !cs(显示临界区)

    !cs 名显示一个或多个临界区或整个临界区树。

!cs [-s] [-l] [-o]

!cs [-s] [-o] Address

!cs [-s] [-l] [-o] StartAddress EndAddress

!cs [-s] [-o] -d InfoAddress

!cs [-s] -t [TreeAddress]

!cs -?

14.1  DLL

    Exts.dll

15.  !cxr(显示处理器信息)

    !cxr 命令已过时。请改用 .cxr(显示上下文记录)命令。

16.  !dh(显示图像头)

    !dh 名显示指定图像的标头。

!dh [Options] Address

!dh -h

16.1  DLL

Windows 2000:Dbghelp.dll, Kdextx86.dll ,Ntsdexts.dll

Windows XP and later:Dbghelp.dll

17.  !dlls(显示加载或使用的dll模块)

    !dlls 名显示所有已加载模块或指定线程或进程正在使用的所有模块的表条目。

!dlls [Options] [LoaderEntryAddress]

!dlls -h

17.1  DLL

Exts.dll

18.  !dml_proc(显示进程列表)

    !dml_proc 显示进程列表,并提供链接以获取有关进程的更多详细信息。

!dml_proc

19.  !dumpfa(显示故障分析)

    !dumpfa 程序显示故障分析条目的内容。

!dumpfa Address

19.1  DLL

Ext.dll

20.  !envvar(显示环境变量)

    !envvar 名显示指定环境变量的值。

!envvar Variable

20.1  DLL

Exts.dll

21.  !error(显示错误信息)

    !error 用于解码和显示有关错误值的信息。

!error Value [Flags]

21.1  DLL

Ext.dll

22.  !exchain(显示异常处理程序链)

    !exchain 显示当前异常处理程序链。

!exchain [Options]

22.1  DLL

Ext.dll

23.  !exchain(显示异常处理程序链)

    !exchain 扩显示当前异常处理程序链。

!exchain [Options]

23.1  DLL

Ext.dll

24.  !exr(显示异常处理程序链)

    !exr 命令已过时。请改用 .exr(显示异常记录)命令。

25.  !findxmldata(查找xml数据)

    !findxmldata 程序从包含内核模式小内存转储文件的 CAB 文件中检索 XML 数据。

!findxmldata [ -d DeviceName | -h HwId ]

!findxmldata -r Driver

!findxmldata -chksum [ -z CabFile ]

!findxmldata -v

25.1  DLL

Ext.dll

26.  !for_each_*命令(执行调试命令方法)

26.1  !for_each_frame(每帧执行调试命令)

!for_each_frame 会对当前线程栈中的每一帧执行一次调试器命令。

!for_each_frame ["CommandString"]

!for_each_frame -?

26.2  !for_each_function (每函数执行调试命令)

    !for_each_function 会对指定模块中名称与指定模式匹配的每个函数执行调试器命令。

!for_each_function -m:ModuleName -p:Pattern -c:CommandString

!for_each_function -?

26.3  !for_each_local(每局部变量执行调试命令)

!for_each_local 会对当前帧中的每个局部变量执行一次调试器命令。

!for_each_local ["CommandString"]

!for_each_local -?

26.4  !for_each_module(每模块执行调试命令)

!for_each_module 会对每一个已加载的模块执行一次调试器命令。

!for_each_module ["CommandString"]

!for_each_module -?

26.5  !for_each_register(每寄存器执行调试命令)

!for_each_register 会对每个寄存器执行指定的命令。

!for_each_register -c:CommandString

!for_each_register -?

26.6  DLL

Ext.dll

27.  !gflag(每局部变量执行调试命令)

!gflag 扩展用于设置或显示全局标志。

!gflag [+|-] Value

!gflag {+|-} Abbreviation

!gflag -?

!gflag

27.1  DLL

Exts.dll

28.  !gle(显示当前线程最后一个错误值)

!gle [-all]

28.1  DLL

Exts.dll

29.  !gs(分析 /GS 栈溢出)

!gs

29.1  DLL

Ext.dll

30.  !gs(分析 /GS 栈溢出)

!gs

30.1  DLL

Ext.dll

31.  !handle(显示进程句柄)

!handle 扩展显示目标系统中一个或多个进程拥有的句柄信息。

(1) 用户模式

!handle [Handle [UMFlags [TypeName]]]

!handle -?

(2) 内核模式

!handle [Handle [KMFlags [Process [TypeName]]]]

32.  !heap(堆操作)(重要且常用)

!heap用于显示堆内存使用情况信息、控制堆管理器中的断点、检测泄漏的堆内存块、搜索堆内存块或显示页堆信息。

    此扩展程序支持段堆和 NT 堆。使用不带任何参数的 !heap 命令可以列出所有堆及其类型。

!heap [HeapOptions] [ValidationOptions] [Heap]

!heap -b [{alloc|realloc|free} [Tag]] [Heap | BreakAddress]

!heap -B {alloc|realloc|free} [Heap | BreakAddress]

!heap -l

!heap -s [SummaryOptions] [StatHeapAddress]

!heap -i HeapAddress

!heap -x [-v] Address

!heap -p [PageHeapOptions]

!heap -srch [Size] Pattern

!heap -flt FilterOptions

!heap -stat [-h Handle [-grp GroupBy [MaxDisplay]]]

!heap [-p] -?

!heap -triage [Handle | Address]

32.  !help(扩展命令之帮助命令)

    !help会显示帮助文本,其中描述了从扩展程序 DLL 导出的扩展命令。

请勿将此扩展命令与 ?(命令帮助)或 .help(逾命令帮助)命令混淆。

![ExtensionDLL.]help [-v] [CommandName]

33.  !homedir(设置默认目录)

    !homedir设置符号服务器和源服务器使用的默认目录。

!homedir Directory

!homedir

33.1  DLL

Dbghelp.dll

34.  !hstring(显示 HSTRING)

!hstring 扩展会显示 HSTRING 的各个字段。显示的最后一项是字符串本身。

!hstring Address

35.  !hstring2(显示更多 HSTRING)

    !hstring2 显示整个 HSTRING,包括字符串本身中嵌入的任何 NULL 字符。

36.  !htrace(显示句柄栈跟踪)

    !htrace 扩展程序显示一个或多个句柄的堆跟踪信息。

(1) 用户模式

!htrace [Handle [Max_Traces]]

!htrace -enable [Max_Traces]

!htrace -snapshot

!htrace -diff

!htrace -disable

!htrace -?

(2) 内核模式

!htrace [Handle [Process [Max_Traces]]]

!htrace -?

36.1  DLL

Windows XP 及更高版本:

Kdexts.dll,Ntsdexts.dll

37.  !imggp(显示64位映像全局指针目录条目值)

    !imggp显示 64 位映像的全局指针 (GP) 目录条目值。

!imggp Address

37.1  DLL

Ext.dll

38.  !imgreloc(显示模块重定位前的地址)

    !imgreloc显示每个已加载模块的地址,并指示它们在重定位之前的地址。

!imgreloc Address

38.1  DLL

Ext.dll

39.  !kuser(显示共享用户模式页面)

    !kuser 显示共享用户模式页面 (KUSER_SHARED_DATA)。

!kuser

例如:

0:000> !kuser

_KUSER_SHARED_DATA at 000000007ffe0000

TickCount:    fa00000 * 0000000000af1a05 (2:01:48:24.078)

TimeZone Id: 0

ImageNumber Range: [8664 .. 8664]

Crypto Exponent: 0

SystemRoot: 'C:\windows'

BootId: 63

39.1  DLL

Exts.dll

40.  !list(重复执行调试器命令)

    !list 重复执行指定的调试器命令,对链表中的每个元素执行一次。

!list -t [Module!]Type.Field -x "Commands" [-a "Arguments"] [Options] StartAddress

!list " -t [Module!]Type.Field -x \"Commands\" [-a \"Arguments\"] [Options] StartAddress "

!list -h

40.1  DLL

Ext.dll

41.  !lmi(显示指定模块的详情)

    !lmi 显示有关模块的详细信息。

!lmi Module

41.1  DLL

Dbghelp.dll

42.  !lui(显示多语言用户界面缓存详情)

    !mui 显示多语言用户界面 (MUI) 缓存信息。

!mui -c

!mui -s

!mui -r ModuleAddress

!mui -i

!mui -f

!mui -t

!mui -u

!mui -d ModuleAddress

!mui -e ModuleAddress

!mui -?

42.1  DLL

Windows XP:Unavailable

Windows Vista 及其后版本:Exts.dll

44.  !obja(在对象管理器中显示对象属性)

    !obja 用于在对象管理器中显示对象的属性。

!obja Address

44.1  DLL

Ext.dll

45.  !owner(显示模块或函数的拥有者)

    !owner显示模块或函数的拥有者。

!owner [Module[!Symbol]]

45.1  DLL

Ext.dll

46.  !peb(显示过程环境块中信息的格式化视图)

    !peb 显示过程环境块 (PEB) 中信息的格式化视图。

!peb [PEB-Address]

46.1  DLL

Exts.dll

47.  !rebase(搜索指定地址或符号)

    !rebase 会在 rebase.log 文件中搜索指定的地址或符号。

!rebase [-r] Address [Path]

!rebase Symbol [Path]

!rebase -stack [Path]

!rebase -?

47.1  DLL

Ext.dll

48.  !rtlavl (显示 RTL_AVL_TABLE 结构的条目)

    !rtlavl 显示 RTL_AVL_TABLE 结构的条目。

!rtlavl Address [Module!Type]

!rtlavl -?

48.1  DLL

Ext.dll

49.  !sd (显示指定地址的安全描述符)

    !sd 显示指定地址的安全描述符。

!sd Address [Flags]

49.1  DLL

Exts.dll

50.  !sd (显示指定地址的安全描述符)

    !sd 显示指定地址的安全描述符。

!sd Address [Flags]

50.1  DLL

Exts.dll

51.  !sid (显示指定地址的安全标识符)

    !sid 显示指定地址的安全标识符 (SID)。

!sid Address [Flags]

51.1  DLL

Exts.dll

52.  !slist (显示单链表)

    !slist 扩展显示单链表 (SList)。

!slist Address [ Symbol [Offset] ]

!slist -?

52.1  DLL

Exts.dll

53.  !sym (控制提示噪声)

!sym 控制符号加载和符号提示的噪声。

!sym

!sym noisy

!sym quiet

!sym prompts

!sym prompts off

53.1  DLL

Dbghelp.dll

54.  !teb (显示TEB中信息的格式化视图)

!teb 显示线程环境块 (TEB) 中信息的格式化视图。

!teb [TEB-Address]

54.1  DLL

Exts.dll

55.  !tls (显示TLS图)

!tls 显示线程本地存储 (TLS) 插槽。

!tls Slot [TEB]

55.1  DLL

Exts.dll

56.  !token (显示安全令牌对象的格式化视图)

!token 显示安全令牌对象的格式化视图。

(1)  内核模式

!token [-n] [Address]

!token -?

(2)  用户模式

!token [-n] [Handle]

!token -?

56.1  DLL

Exts.dll

57.  !tp (显示线程池详情)

!tp显示线程池信息。

!tp pool Address [Flags]

!tp tqueue Address [Flags]

!tp ItemType Address [Flags]

!tp ThreadType [Address]

!tp stats Address [Flags]

!tp wfac Address

!tp wqueue Address Priority Node

!tp -?

57.1  DLL

Exts.dll

58.  !version (显示扩展DLL的版本信息)

    !version 显示扩展 DLL 的版本信息。请勿将此扩展命令与 version(显示调试器版本)命令混淆。

![ExtensionDLL.]version

58.1  DLL

在大多数护展 DLL 中均可获得。

58.  !winrterr(设置运行时错误调试器报告模式)

    !winrterr 设置 Windows 运行时错误的调试器报告模式。

!winrterr Mode

!winrterr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值