美创科技技术社区

注册

 

发新话题 回复该主题

如何进行subheap dump [复制链接]

1#
http://www.juliandyke.com/Diagnostics/Dumps/HEAPDUMP_ADDR.htmlDumpsMemory Subheaps

Each heap may have one or more subheaps. These can be dumped using  the command

    ALTER SESSION SET EVENTS    'immediate trace name heapdump_addr level level';

where the level is the address of the subheap.

The syntax for this command changed in Oracle 9.2

Oracle  9.0.1 and below

Oracle  9.2.0 and above

Oracle 9.0.1 and below

For Oracle 9.0.1 and below a summary dump is obtained by setting the  level to the decimal value of the address. A detailed dump is obtained by  adding 1  to the decimal value of the address.

For example to dump the subheap at address 0×8057eb78, first  convert the address to decimal (2153245560)

The subheap address can be found in the heapdump, for example

    ds=0x8057eb78

For a summary dump use

    ALTER SESSION SET EVENTS    'immediate trace name heapdump_addr level 2153245560';

For a detailed dump, add 1 to the address e.g.

    ALTER SESSION SET EVENTS    'immediate trace name heapdump_addr level 2153245561';Oracle 9.2.0 and above

In Oracle 9.2 and above, for a summary dump

    ALTER SESSION SET EVENTS    'immediate trace name heapdump_addr level 1, addr 2153245560';

The following ORADEBUG command has the same effect

    ORADEBUG DUMP HEAPDUMP_ADDR 1 2153245560

In Oracle 9.2 and above, for a detailed dump

    ALTER SESSION SET EVENTS    'immediate trace name heapdump_addr level 2, addr 2153245560';

Note that in Oracle 9.2 it is no longer necessary to add 1 to the  address

The following ORADEBUG command has the same effect

    ORADEBUG DUMP HEAPDUMP_ADDR 2 2153245560
分享 转发
TOP
发新话题 回复该主题