SlideShare a Scribd company logo
1 of 46
Download to read offline
Matthew Kilner – IBM Java L3 Service – Core team lead
23rd September 2013

Windows Debugging Tools

© 2013 IBM Corporation
Important Disclaimers
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY.
WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION
CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED.
ALL PERFORMANCE DATA INCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED IN A CONTROLLED
ENVIRONMENT. YOUR OWN TEST RESULTS MAY VARY BASED ON HARDWARE, SOFTWARE OR
INFRASTRUCTURE DIFFERENCES.
ALL DATA INCLUDED IN THIS PRESENTATION ARE MEANT TO BE USED ONLY AS A GUIDE.
IN ADDITION, THE INFORMATION CONTAINED IN THIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT
PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE.
IBM AND ITS AFFILIATED COMPANIES SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE
USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION.
NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF:
- CREATING ANY WARRANT OR REPRESENTATION FROM IBM, ITS AFFILIATED COMPANIES OR ITS OR THEIR
SUPPLIERS AND/OR LICENSORS

2

© 2013 IBM Corporation
About me
 Matthew Kilner


 Work for IBM
– 13 years working on IBM Java
• Memory Management
• Class Sharing
• RAS
– Currently leading the Core customer support team.


 Contact info
– kilnerm@uk.ibm.com
– Twitter: @IBMJTC
– Youtube: IBM_JTC


 Visit the IBM booth #5112 and meet other IBM developers
at JavaOne 2013
3

© 2013 IBM Corporation
What should you get from this talk?

 Awareness of some excellent windows tools:
– A high level understanding of what it is they let you do,
– Details of where to obtain the tools,
– Details of where to find out how to use them.
–
 Some useful tips on working with the tools

© 2013 IBM Corporation
General tips

 Most Microsoft tools require symbol files, often known as .pdb, to enable method names and source
lines in stack traces.
 Always keep your symbols in one place and keep a pre-configured Symbol path to hand.
• I will use generic paths for the JDK symbol files and overlay those paths with the correct level of
symbol for the JDK I am debugging at the time.
• JDK symbol files ship in the majority of the IBM JDK packaging formats.
 Remember to include the MS symbol server:
• SRV*<local symbol store>*http://msdl.microsoft.com/download/symbols

5

© 2013 IBM Corporation
PDB files

 PDB files are an essential part of effective debugging

 The following link provides deailed information on how to generate them:
• http://msdn.microsoft.com/en-us/library/aa260783%28v=vs.60%29.aspx

 Requires the addition of compile and link time flags.

6

© 2013 IBM Corporation
IBM Presentation Template Full Version

The tools

 Windows SDK tools:
– UMDH
– ADPlus
 Sysinternals tools:
– VMMAP
– Procdump
 Standard tools:
– Performance Monitor
 Stand alone tools:
– Debug Diagnostics

7

© 2013 IBM Corporation
Usefulness is contextual

 A tools usefulness is limited to a number of problem types or tasks you are working on.

 Most of these tools have been “discovered” during analysis of real world problems.
– Predominantly related to Virtual addressing problems.
–
 Several of the tools have capabilities beyond the use described today.

8

© 2013 IBM Corporation
Monitoring the system / application

 There are two common problem scenarios where it is desirable to understand more about how a
system or application is performing:
– Virtual Addressing problems
– Performance problems
• Slow responsiveness, High CPU usage, etc....



9

© 2013 IBM Corporation
Performance Monitor
 Where to get it:
• Included in you windows installation
 What is it:
–A powerful monitoring tool
 What does it let us do:
–Monitor and analyse performance data in real time or from a log file.
–Can track almost every aspect of system performance.
 How do you use it:
–Launched by:
• Entering “perfmon” in your run dialog, or
• Via the Performance Monitor entry on the start menu
–Read the in-built help documentation.

10

© 2013 IBM Corporation
Performance Monitor – monitoring process size

 The most common use is for
accurate measurement of a
processes size while debugging
virtual addressing issues.

 Define a data collector Set to record
the following counters on the process
object:
• Virtual bytes
• Private bytes

•

11

© 2013 IBM Corporation
Performance Monitor – monitoring process size

 For live monitoring add the same
counters to the performance monitor
view

 When loading Data collection sets
back into the tool you will see similar
output.

•

12

© 2013 IBM Corporation
Performance Monitor – other uses

 We primarily use it for monitoring process
sizes which only scratches the surface of
its practical uses.
 The ability to monitor nearly anything you
want on one or more processes such as:
• Monitoring per thread CPU
consumption across a process.
• Monitoring the power consumption of
individual CPU's.

13

© 2013 IBM Corporation
Capturing Dumps

 Occasionally we see problems where the JDK does not write dumps when we expect it to.
– This provides a real challenge for continuing problem analysis.
–
 We use two tools that help capture dumps in this scenario:
– ADPlus (Windows SDK)
– Procmon (Sysinternals)
–


14

© 2013 IBM Corporation
ADPlus

 Where to get it:
• http://msdn.microsoft.com/en-us/library/windows/desktop/hh852363.aspx
• Part of the Windows SDK
 What is it:
– A useful tool for generating system dumps
– Can also be used in hang situations
 What does it let us do:
– Monitor a process and generate system dumps on:
• User request
• Process termination
• First and second chance exceptions.
 How do you use it:
– Documentation is included in the install directory
• <Path to installation>Windows Kits8.0Debuggersx64ADPlus.doc
15

© 2013 IBM Corporation
Procdump

 Where to get it:
• http://technet.microsoft.com/en-us/sysinternals/dd996900
 What is it:
–A useful tool for generating system dumps
 What does it let us do:
–Generate system dumps in a multitude of scenarios:
• The process exceeding a threshold on any performance counter
• On process exit
• On first and second chance exceptions.
 How do you use it:
–Command line utility
• See the link above for examples, or
• Run the tool with no options.
16

© 2013 IBM Corporation
Procdump – usage examples

 Example: Write up to 3 dumps of a process named 'consume' when it exceeds 20% CPU usage for
five seconds to the directory c:dumpconsume with the name consume.dmp:
• C:>procdump -c 20 -s 5 -n 3 -o consume c:dumpconsume

 Example: Write 3 dumps 5 seconds apart:
• C:>procdump -s 5 -n 3 notepad.exe notepad.dmp

 Example: Launch a process and then monitor it for excessive CPU usage:
• C:>procdump -c 30 -s 10 -x consume.exe consume.dmp

17

© 2013 IBM Corporation
Understanding Virtual Memory Growth

 A common problem we encounter is the virtual address space of processes growing and either:
– Causing process termination due to an inability to allocate memory, or
– Causing severe performance issues due to paging

 There are three excellent tools available on Windows to help understand what is causing the growth:
– UMDH (Windows SDK)
– Debug Diag ( Stand alone)
– VMMAP (Sysinternals)



18

© 2013 IBM Corporation
UMDH

 Where to get it:
• http://msdn.microsoft.com/en-us/library/windows/desktop/hh852363.aspx
• Part of the Windows SDK
 What is it:
–A tool that tracks and analyzes windows heap allocations within a process
 What does it let us do:
– Take snapshots of memory footprint within a process broken down by allocation stack.
– Compare snapshots and summarize the key differences.
– Identify stacks for specific allocation sizes.
 How do you use it:
– Basic usage instructions:
• http://msdn.microsoft.com/en-us/library/windows/hardware/ff558947%28v=vs.85%29.aspx
– More detail is available in this Microsoft knowledge base article:
• http://support.microsoft.com/kb/268343
–
19

© 2013 IBM Corporation
UMDH – sample output
// Connecting to process 3312 ...
// Process 3312 opened handle=48.
// Loaded modules:

 Snapshot files contain the raw data
from a point of execution of the
process, you will see:
– A summary of loaded modules
– A summary fo the data format:
– A series of allocations:
–

 When you have multiple snapshots
you run the compare tool.

//

Base Size Module

//

13A0000

//

773B0000 1A9000 C:windowsSYSTEM32ntdll.dll

35000 C:Program FilesIBMCodeRallyjdkjrebinjavaw.exe

// Process modules enumerated.
// _NT_SYMBOL_PATH set by default to C:windowssymbols
// Debug library initialized ...
DBGHELP: ntdll - export symbols
*- - - - - - - - - - Start of data for heap @ 310000 - - - - - - - - - REQUESTED bytes + OVERHEAD at ADDRESS by BackTraceID
STACK if not already dumped.
*- - - - - - - - - - Heap 310000 Hogs - - - - - - - - - 28 bytes + 28 at 311310 by BackTrace720C0
7744BBED
773DC2E2
773F357E
773F1937
773DC34E

20

© 2013 IBM Corporation
UMDH – comparing snapshots

 To run a comparison you execute:
• UMDH <log 1> <log 2> > <output file>

 Once the compare completes the output file contains a list of the call stacks that have differing memory
usage between the dumps sorted by overall size:
–

+ 550376 ( 550776 - 400) 12 allocsBackTrace33599F60
+
11 ( 12 1) BackTrace33599F60
allocations
ntdll!MD5Final+A63D
J9PRT26!j9mem_allocate_memory+74 (c:cygwinhomeforemansandboxjvm-binsrcj9portcommonj9memtag.c, 184)
j9vm26!allocateMemoryForSegment+A0 (c:cygwinhomeforemansandboxjvm-binsrcj9vmsegment.c, 216)
j9vm26!allocateVirtualMemorySegmentInListInternal+E6 (c:cygwinhomeforemansandboxjvm-binsrcj9vmsegment.c, 357)
j9vm26!allocateFixedMemorySegmentInList+A8 (c:cygwinhomeforemansandboxjvm-binsrcj9vmsegment.c, 319)

21

© 2013 IBM Corporation
UMDH – important considerations

 The tool uses snapshots of outstanding allocations so a degree of additional interpretation is needed.

 Do not assume the top consumer between two snapshots is the cause of the problem
• Also consider the volume of allocations, particularly for small chunks which have implications in
terms of fragmentation pre Vista/Server 2008.
•
 Best used in conjunction with performance monitor and over several iterations of snapshots.

 Longer durations between snapshots often make it easier to identify leaks

22

© 2013 IBM Corporation
Debug Diagnostic Tool

 Where to get it:
• http://www.microsoft.com/en-us/download/details.aspx?id=26798
 What is it:
–A tool providing a range of capability for analysis of crash, hang or native memory isssues.
 What does it let us do:
–Analysis of native memory issues.
–Basic analysis of crash or hang scenarios.
–Attaches to live processes and can be used to generate dumps at request or by rule configuration.
–Designed for minimal performance impact
 How do you use it:
– Basic Instructions:
• http://support.microsoft.com/kb/2580960
–Read the whitepaper:
• http://www.microsoft.com/download/en/details.aspx?id=23521
–Use the in-built help documentation.
23

© 2013 IBM Corporation
Debug Diagnostic Tool – native memory analysis

 Our main use of this tool is for debuging native memory issues.
–The key thing to remember is to always inject the leak track dll, without this the reports you generate
will be basic.
–
–The optimal method of analysis involves taking multple dumps of the process as its virtual size
grows, understanding the rate of growth between dumps is important and can be monitored using
the performance monitor tool.
–
–Dumps can be generated directly from the UI or rules can be configured to generate dumps after a
set amount of time or increase in memory usage.
–
–Once dumps are generated you load them into the tool and select to run the Memory pressure
script. When complete the tool will open the report in a browser window.
–
24

© 2013 IBM Corporation
Debug Diagnostic Tool – native memory report

 The report is broken into distinct sections:
• Virtual Memory Analysis Report
• Heap Analysis Report
• Leak Analysis Report (only with leak tracking)
•
 The following extracts are taken from results of monitoring a 64 bit process which has a maximum
address space of 8 Tbytes.
 Each report starts with a summary which contains some key pieces of information:


25

© 2013 IBM Corporation
Debug Diagnostic Tool – Virtual Memory Analysis Report

 Contains:
• Virtual Memory Summary
• Virtual Memory Details
• Virtual Allocation Summary
• Loaded Module Summary
• Thread Summary
 The most pertinent details are the first
three elements
•

26

© 2013 IBM Corporation
Debug Diagnostic Tool – Heap Analysis Report

 The heap analysis report
contains information on
the Heaps in use within
the process.

 Not to be confused with
the JVM's heap.


27

© 2013 IBM Corporation
Debug Diagnostic Tool – Heap Details

 For each heap you get:
– A summary
– Information on the Heap segments
– Information on allocations
 The Summary:


28

© 2013 IBM Corporation
Debug Diagnostic Tool – Heap Details

 The Segment info:

29

© 2013 IBM Corporation
Debug Diagnostic Tool – Heap Details

 The Allocation Summary:

30

© 2013 IBM Corporation
Debug Diagnostic Tool – Leak Analysis Report

 Only available when the leaktrack dll is injected to the process being monitored.
 The most useful aspect is the summary of allocations at the module level:
– By Count:
–


31

© 2013 IBM Corporation
Debug Diagnostic Tool – Leak Analysis Report

– and by Size:
–


32

© 2013 IBM Corporation
Debug Diagnostic Tool – Module Summary

 For each module we get a more detailed breakdown including a summary:


33

© 2013 IBM Corporation
Debug Diagnostic Tool – Module Summary

 We get a summary of functions by count and allocated size:


34

© 2013 IBM Corporation
Debug Diagnostic Tool – Module Summary

 And for each function additional detail:


35

© 2013 IBM Corporation
Debug Diagnostic Tool – Module Summary

 Allocation count and size breakdown:



36

© 2013 IBM Corporation
Debug Diagnostic Tool – Module Summary

 And sample call stacks for prominent sizes:



37

© 2013 IBM Corporation
Debug Diagnostic Tool – Drawing conclusions

 The tool provides a lot of information, but doesn't do comparison of multiple data sets.
 Using a spreadsheet to capture the pertinent data points highlighted over the previous slides will build
a picture that allow you to see the key areas that are causing growth.
– You can even plot the data for easier visualization



38

© 2013 IBM Corporation
VMMAP

 Where to get it:
• http://technet.microsoft.com/en-us/sysinternals/dd535533
 What is it:
–A tool for analysis the virtual and physical memory usage of a windows process
 What does it let us do:
–Attaches to live processes for run time analysis and allows for export of process information in a
variety of formats.
–Provides a facility to launch a process and trace it which utilizes additional instrumentation that
enables us to identify the stacks allocating into specific regions of memory.
–Allows us to compare the contents of the address space between two different points in time, when
tracing is enabled you can see exactly who is allocating into regions.
–At any time you can flush the physical memory the process is using meaning this is a great tool for
seeing just how much memory a particular feature of your application uses.
–
–
39

© 2013 IBM Corporation
VMMAP

 Having
attached or
launched a
process you
will see a
window like
this:
 Each time you
refresh the
view a new
snapshot is
created

40

© 2013 IBM Corporation
VMMAP – Comparing snapshots

 First you have to open the timeline window:





 Next you left click and drag to select the
timeframe you wish to view:
• Snapshots are represented by the
small black lines:

41

© 2013 IBM Corporation
VMMAP – Comparing snapshots

 Once selected
you will see:

42

© 2013 IBM Corporation
VMMAP – Comparing snapshots

 Address ranges that are in the most recent snapshot but not in the earliest are highlighted in bright
green.
 Address ranges that were in the earliest snapshot but not in the current are highlighted in bright red.
 If you started the process under full tracing you can select a “HEAP” and view the allocations made
within it between the snapshots, for each allocation you can also view the call stack.



43

© 2013 IBM Corporation
VMMAP – other features

 When tracing is enabled you have the option to view a trace of key memory operations by selecting the
trace option which lists:
• Allocation sites
• Number of allocations for the site
• The number of bytes allocated
• The type of operation
•
 You can also select any site and choose
to view its stack.

44

© 2013 IBM Corporation
Q&A

 Questions

45

© 2013 IBM Corporation
IBM@JavaOne

http://ibm.co/JavaOne2013

46

© 2013 IBM Corporation

More Related Content

What's hot

JavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjectsJavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjectsRyan Sciampacone
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352sflynn073
 
JavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNR
JavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNRJavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNR
JavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNRRyan Sciampacone
 
Bci for Beginners
Bci for BeginnersBci for Beginners
Bci for BeginnersIainLewis
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batchtimfanelli
 
QCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentQCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentChris Bailey
 
Java Batch for Cost Optimized Efficiency
Java Batch for Cost Optimized EfficiencyJava Batch for Cost Optimized Efficiency
Java Batch for Cost Optimized EfficiencySridharSudarsan
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesJan S. Rellermeyer
 
Cast Iron Cloud Integration Best Practices
Cast Iron Cloud Integration Best PracticesCast Iron Cloud Integration Best Practices
Cast Iron Cloud Integration Best PracticesSarath Ambadas
 
websphere cast iron labs
 websphere cast iron labs websphere cast iron labs
websphere cast iron labsAMIT KUMAR
 
Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011
Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011
Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011SugarCRM
 
All of the Performance Tuning Features in Oracle SQL Developer
All of the Performance Tuning Features in Oracle SQL DeveloperAll of the Performance Tuning Features in Oracle SQL Developer
All of the Performance Tuning Features in Oracle SQL DeveloperJeff Smith
 
Making your PostgreSQL Database Highly Available
Making your PostgreSQL Database Highly AvailableMaking your PostgreSQL Database Highly Available
Making your PostgreSQL Database Highly AvailableEDB
 
Best Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupBest Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupEDB
 
An overview of reference architectures for Postgres
An overview of reference architectures for PostgresAn overview of reference architectures for Postgres
An overview of reference architectures for PostgresEDB
 
Five Keys for Performance Management of Oracle Forms and E-Business Suite
Five Keys for Performance Management of Oracle Forms and E-Business SuiteFive Keys for Performance Management of Oracle Forms and E-Business Suite
Five Keys for Performance Management of Oracle Forms and E-Business SuiteCorrelsense
 
Introduction to Java Enterprise Edition
Introduction to Java Enterprise EditionIntroduction to Java Enterprise Edition
Introduction to Java Enterprise EditionAbdalla Mahmoud
 
An overview of reference architectures for Postgres
An overview of reference architectures for PostgresAn overview of reference architectures for Postgres
An overview of reference architectures for PostgresEDB
 
Top 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data GridTop 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data GridScaleOut Software
 

What's hot (20)

JavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjectsJavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjects
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352
 
JavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNR
JavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNRJavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNR
JavaOne 2013: Effective Foreign Function Interfaces: From JNI to JNR
 
Bci for Beginners
Bci for BeginnersBci for Beginners
Bci for Beginners
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batch
 
QCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentQCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application Development
 
Java Batch for Cost Optimized Efficiency
Java Batch for Cost Optimized EfficiencyJava Batch for Cost Optimized Efficiency
Java Batch for Cost Optimized Efficiency
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded Devices
 
Cast Iron Cloud Integration Best Practices
Cast Iron Cloud Integration Best PracticesCast Iron Cloud Integration Best Practices
Cast Iron Cloud Integration Best Practices
 
websphere cast iron labs
 websphere cast iron labs websphere cast iron labs
websphere cast iron labs
 
Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011
Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011
Using IBM's Cast Iron with SugarCRM to Integrate Customer Data | SugarCon 2011
 
All of the Performance Tuning Features in Oracle SQL Developer
All of the Performance Tuning Features in Oracle SQL DeveloperAll of the Performance Tuning Features in Oracle SQL Developer
All of the Performance Tuning Features in Oracle SQL Developer
 
Making your PostgreSQL Database Highly Available
Making your PostgreSQL Database Highly AvailableMaking your PostgreSQL Database Highly Available
Making your PostgreSQL Database Highly Available
 
Queues, Pools, Caches
Queues, Pools, CachesQueues, Pools, Caches
Queues, Pools, Caches
 
Best Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupBest Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture Setup
 
An overview of reference architectures for Postgres
An overview of reference architectures for PostgresAn overview of reference architectures for Postgres
An overview of reference architectures for Postgres
 
Five Keys for Performance Management of Oracle Forms and E-Business Suite
Five Keys for Performance Management of Oracle Forms and E-Business SuiteFive Keys for Performance Management of Oracle Forms and E-Business Suite
Five Keys for Performance Management of Oracle Forms and E-Business Suite
 
Introduction to Java Enterprise Edition
Introduction to Java Enterprise EditionIntroduction to Java Enterprise Edition
Introduction to Java Enterprise Edition
 
An overview of reference architectures for Postgres
An overview of reference architectures for PostgresAn overview of reference architectures for Postgres
An overview of reference architectures for Postgres
 
Top 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data GridTop 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data Grid
 

Viewers also liked

Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...timfanelli
 
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVMJavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVMPaulThwaite
 
Whats Next for JCA?
Whats Next for JCA?Whats Next for JCA?
Whats Next for JCA?Fred Rowe
 
Resource management in java bof6823 - java one 2012
Resource management in java   bof6823 - java one 2012Resource management in java   bof6823 - java one 2012
Resource management in java bof6823 - java one 2012JavaNgmr
 
JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013richardgcurtis
 
JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)Graeme_IBM
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applicationspkoza
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparisonRohit Kelapure
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-finalRohit Kelapure
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesDavid Currie
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination ExtRohit Kelapure
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshopRohit Kelapure
 
Taking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source SoftwareTaking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source SoftwareDavid Currie
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparisonRohit Kelapure
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix Rohit Kelapure
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App ArchitecturesChris Bailey
 
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesWebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesChris Bailey
 

Viewers also liked (20)

Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
 
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVMJavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVM
 
Whats Next for JCA?
Whats Next for JCA?Whats Next for JCA?
Whats Next for JCA?
 
Resource management in java bof6823 - java one 2012
Resource management in java   bof6823 - java one 2012Resource management in java   bof6823 - java one 2012
Resource management in java bof6823 - java one 2012
 
JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013
 
JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applications
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
 
D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
 
D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshop
 
1812 icap-v1.3 0430
1812 icap-v1.3 04301812 icap-v1.3 0430
1812 icap-v1.3 0430
 
Taking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source SoftwareTaking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source Software
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App Architectures
 
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesWebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination Features
 

Similar to Windows Debugging Tools - JavaOne 2013

Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Sharon James
 
Reliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxReliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxSamsung Open Source Group
 
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...Teodoro Cipresso
 
Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016Canturk Isci
 
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Camilo Alvarez Rivera
 
User Interface and Data Sources.pdf
User Interface and Data Sources.pdfUser Interface and Data Sources.pdf
User Interface and Data Sources.pdfPencilData
 
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0Haytham Ghandour
 
ICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance BoostICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance BoostChristoph Adler
 
WebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic ToolsWebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic ToolsChris Bailey
 
Introduction to the IBM Java Tools
Introduction to the IBM Java ToolsIntroduction to the IBM Java Tools
Introduction to the IBM Java ToolsChris Bailey
 
Frststps
FrststpsFrststps
Frststpserney03
 
S200515 storage-insights-ist2020-v2001d
S200515 storage-insights-ist2020-v2001dS200515 storage-insights-ist2020-v2001d
S200515 storage-insights-ist2020-v2001dTony Pearson
 
Impact2014: Practical Performance Troubleshooting
Impact2014: Practical Performance TroubleshootingImpact2014: Practical Performance Troubleshooting
Impact2014: Practical Performance TroubleshootingChris Bailey
 
Decrease build time and application size
Decrease build time and application sizeDecrease build time and application size
Decrease build time and application sizeKeval Patel
 
Systems and Applications.pptx
Systems and Applications.pptxSystems and Applications.pptx
Systems and Applications.pptxMonaNashaat3
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from DumpsChris Bailey
 
data_structures_algorithms_tutorial (1).pptx
data_structures_algorithms_tutorial (1).pptxdata_structures_algorithms_tutorial (1).pptx
data_structures_algorithms_tutorial (1).pptxDrShivaranjaniPonnus
 

Similar to Windows Debugging Tools - JavaOne 2013 (20)

Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
 
Reliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxReliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on Linux
 
Users guide
Users guideUsers guide
Users guide
 
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
 
Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016
 
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
 
User Interface and Data Sources.pdf
User Interface and Data Sources.pdfUser Interface and Data Sources.pdf
User Interface and Data Sources.pdf
 
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
 
ICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance BoostICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance Boost
 
WebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic ToolsWebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic Tools
 
Aci dp
Aci dpAci dp
Aci dp
 
Introduction to the IBM Java Tools
Introduction to the IBM Java ToolsIntroduction to the IBM Java Tools
Introduction to the IBM Java Tools
 
Frststps
FrststpsFrststps
Frststps
 
S200515 storage-insights-ist2020-v2001d
S200515 storage-insights-ist2020-v2001dS200515 storage-insights-ist2020-v2001d
S200515 storage-insights-ist2020-v2001d
 
Impact2014: Practical Performance Troubleshooting
Impact2014: Practical Performance TroubleshootingImpact2014: Practical Performance Troubleshooting
Impact2014: Practical Performance Troubleshooting
 
Decrease build time and application size
Decrease build time and application sizeDecrease build time and application size
Decrease build time and application size
 
Systems and Applications.pptx
Systems and Applications.pptxSystems and Applications.pptx
Systems and Applications.pptx
 
What's new in designer
What's new in designerWhat's new in designer
What's new in designer
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from Dumps
 
data_structures_algorithms_tutorial (1).pptx
data_structures_algorithms_tutorial (1).pptxdata_structures_algorithms_tutorial (1).pptx
data_structures_algorithms_tutorial (1).pptx
 

Recently uploaded

The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 

Recently uploaded (20)

The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 

Windows Debugging Tools - JavaOne 2013

  • 1. Matthew Kilner – IBM Java L3 Service – Core team lead 23rd September 2013 Windows Debugging Tools © 2013 IBM Corporation
  • 2. Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. ALL PERFORMANCE DATA INCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED IN A CONTROLLED ENVIRONMENT. YOUR OWN TEST RESULTS MAY VARY BASED ON HARDWARE, SOFTWARE OR INFRASTRUCTURE DIFFERENCES. ALL DATA INCLUDED IN THIS PRESENTATION ARE MEANT TO BE USED ONLY AS A GUIDE. IN ADDITION, THE INFORMATION CONTAINED IN THIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE. IBM AND ITS AFFILIATED COMPANIES SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF: - CREATING ANY WARRANT OR REPRESENTATION FROM IBM, ITS AFFILIATED COMPANIES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS 2 © 2013 IBM Corporation
  • 3. About me  Matthew Kilner   Work for IBM – 13 years working on IBM Java • Memory Management • Class Sharing • RAS – Currently leading the Core customer support team.   Contact info – kilnerm@uk.ibm.com – Twitter: @IBMJTC – Youtube: IBM_JTC   Visit the IBM booth #5112 and meet other IBM developers at JavaOne 2013 3 © 2013 IBM Corporation
  • 4. What should you get from this talk?  Awareness of some excellent windows tools: – A high level understanding of what it is they let you do, – Details of where to obtain the tools, – Details of where to find out how to use them. –  Some useful tips on working with the tools © 2013 IBM Corporation
  • 5. General tips  Most Microsoft tools require symbol files, often known as .pdb, to enable method names and source lines in stack traces.  Always keep your symbols in one place and keep a pre-configured Symbol path to hand. • I will use generic paths for the JDK symbol files and overlay those paths with the correct level of symbol for the JDK I am debugging at the time. • JDK symbol files ship in the majority of the IBM JDK packaging formats.  Remember to include the MS symbol server: • SRV*<local symbol store>*http://msdl.microsoft.com/download/symbols 5 © 2013 IBM Corporation
  • 6. PDB files  PDB files are an essential part of effective debugging   The following link provides deailed information on how to generate them: • http://msdn.microsoft.com/en-us/library/aa260783%28v=vs.60%29.aspx   Requires the addition of compile and link time flags. 6 © 2013 IBM Corporation
  • 7. IBM Presentation Template Full Version The tools  Windows SDK tools: – UMDH – ADPlus  Sysinternals tools: – VMMAP – Procdump  Standard tools: – Performance Monitor  Stand alone tools: – Debug Diagnostics 7 © 2013 IBM Corporation
  • 8. Usefulness is contextual  A tools usefulness is limited to a number of problem types or tasks you are working on.   Most of these tools have been “discovered” during analysis of real world problems. – Predominantly related to Virtual addressing problems. –  Several of the tools have capabilities beyond the use described today. 8 © 2013 IBM Corporation
  • 9. Monitoring the system / application  There are two common problem scenarios where it is desirable to understand more about how a system or application is performing: – Virtual Addressing problems – Performance problems • Slow responsiveness, High CPU usage, etc....   9 © 2013 IBM Corporation
  • 10. Performance Monitor  Where to get it: • Included in you windows installation  What is it: –A powerful monitoring tool  What does it let us do: –Monitor and analyse performance data in real time or from a log file. –Can track almost every aspect of system performance.  How do you use it: –Launched by: • Entering “perfmon” in your run dialog, or • Via the Performance Monitor entry on the start menu –Read the in-built help documentation. 10 © 2013 IBM Corporation
  • 11. Performance Monitor – monitoring process size  The most common use is for accurate measurement of a processes size while debugging virtual addressing issues.   Define a data collector Set to record the following counters on the process object: • Virtual bytes • Private bytes  • 11 © 2013 IBM Corporation
  • 12. Performance Monitor – monitoring process size  For live monitoring add the same counters to the performance monitor view   When loading Data collection sets back into the tool you will see similar output.  • 12 © 2013 IBM Corporation
  • 13. Performance Monitor – other uses  We primarily use it for monitoring process sizes which only scratches the surface of its practical uses.  The ability to monitor nearly anything you want on one or more processes such as: • Monitoring per thread CPU consumption across a process. • Monitoring the power consumption of individual CPU's. 13 © 2013 IBM Corporation
  • 14. Capturing Dumps  Occasionally we see problems where the JDK does not write dumps when we expect it to. – This provides a real challenge for continuing problem analysis. –  We use two tools that help capture dumps in this scenario: – ADPlus (Windows SDK) – Procmon (Sysinternals) –  14 © 2013 IBM Corporation
  • 15. ADPlus  Where to get it: • http://msdn.microsoft.com/en-us/library/windows/desktop/hh852363.aspx • Part of the Windows SDK  What is it: – A useful tool for generating system dumps – Can also be used in hang situations  What does it let us do: – Monitor a process and generate system dumps on: • User request • Process termination • First and second chance exceptions.  How do you use it: – Documentation is included in the install directory • <Path to installation>Windows Kits8.0Debuggersx64ADPlus.doc 15 © 2013 IBM Corporation
  • 16. Procdump  Where to get it: • http://technet.microsoft.com/en-us/sysinternals/dd996900  What is it: –A useful tool for generating system dumps  What does it let us do: –Generate system dumps in a multitude of scenarios: • The process exceeding a threshold on any performance counter • On process exit • On first and second chance exceptions.  How do you use it: –Command line utility • See the link above for examples, or • Run the tool with no options. 16 © 2013 IBM Corporation
  • 17. Procdump – usage examples  Example: Write up to 3 dumps of a process named 'consume' when it exceeds 20% CPU usage for five seconds to the directory c:dumpconsume with the name consume.dmp: • C:>procdump -c 20 -s 5 -n 3 -o consume c:dumpconsume   Example: Write 3 dumps 5 seconds apart: • C:>procdump -s 5 -n 3 notepad.exe notepad.dmp   Example: Launch a process and then monitor it for excessive CPU usage: • C:>procdump -c 30 -s 10 -x consume.exe consume.dmp 17 © 2013 IBM Corporation
  • 18. Understanding Virtual Memory Growth  A common problem we encounter is the virtual address space of processes growing and either: – Causing process termination due to an inability to allocate memory, or – Causing severe performance issues due to paging   There are three excellent tools available on Windows to help understand what is causing the growth: – UMDH (Windows SDK) – Debug Diag ( Stand alone) – VMMAP (Sysinternals)   18 © 2013 IBM Corporation
  • 19. UMDH  Where to get it: • http://msdn.microsoft.com/en-us/library/windows/desktop/hh852363.aspx • Part of the Windows SDK  What is it: –A tool that tracks and analyzes windows heap allocations within a process  What does it let us do: – Take snapshots of memory footprint within a process broken down by allocation stack. – Compare snapshots and summarize the key differences. – Identify stacks for specific allocation sizes.  How do you use it: – Basic usage instructions: • http://msdn.microsoft.com/en-us/library/windows/hardware/ff558947%28v=vs.85%29.aspx – More detail is available in this Microsoft knowledge base article: • http://support.microsoft.com/kb/268343 – 19 © 2013 IBM Corporation
  • 20. UMDH – sample output // Connecting to process 3312 ... // Process 3312 opened handle=48. // Loaded modules:  Snapshot files contain the raw data from a point of execution of the process, you will see: – A summary of loaded modules – A summary fo the data format: – A series of allocations: –  When you have multiple snapshots you run the compare tool. // Base Size Module // 13A0000 // 773B0000 1A9000 C:windowsSYSTEM32ntdll.dll 35000 C:Program FilesIBMCodeRallyjdkjrebinjavaw.exe // Process modules enumerated. // _NT_SYMBOL_PATH set by default to C:windowssymbols // Debug library initialized ... DBGHELP: ntdll - export symbols *- - - - - - - - - - Start of data for heap @ 310000 - - - - - - - - - REQUESTED bytes + OVERHEAD at ADDRESS by BackTraceID STACK if not already dumped. *- - - - - - - - - - Heap 310000 Hogs - - - - - - - - - 28 bytes + 28 at 311310 by BackTrace720C0 7744BBED 773DC2E2 773F357E 773F1937 773DC34E 20 © 2013 IBM Corporation
  • 21. UMDH – comparing snapshots  To run a comparison you execute: • UMDH <log 1> <log 2> > <output file>   Once the compare completes the output file contains a list of the call stacks that have differing memory usage between the dumps sorted by overall size: – + 550376 ( 550776 - 400) 12 allocsBackTrace33599F60 + 11 ( 12 1) BackTrace33599F60 allocations ntdll!MD5Final+A63D J9PRT26!j9mem_allocate_memory+74 (c:cygwinhomeforemansandboxjvm-binsrcj9portcommonj9memtag.c, 184) j9vm26!allocateMemoryForSegment+A0 (c:cygwinhomeforemansandboxjvm-binsrcj9vmsegment.c, 216) j9vm26!allocateVirtualMemorySegmentInListInternal+E6 (c:cygwinhomeforemansandboxjvm-binsrcj9vmsegment.c, 357) j9vm26!allocateFixedMemorySegmentInList+A8 (c:cygwinhomeforemansandboxjvm-binsrcj9vmsegment.c, 319) 21 © 2013 IBM Corporation
  • 22. UMDH – important considerations  The tool uses snapshots of outstanding allocations so a degree of additional interpretation is needed.   Do not assume the top consumer between two snapshots is the cause of the problem • Also consider the volume of allocations, particularly for small chunks which have implications in terms of fragmentation pre Vista/Server 2008. •  Best used in conjunction with performance monitor and over several iterations of snapshots.   Longer durations between snapshots often make it easier to identify leaks 22 © 2013 IBM Corporation
  • 23. Debug Diagnostic Tool  Where to get it: • http://www.microsoft.com/en-us/download/details.aspx?id=26798  What is it: –A tool providing a range of capability for analysis of crash, hang or native memory isssues.  What does it let us do: –Analysis of native memory issues. –Basic analysis of crash or hang scenarios. –Attaches to live processes and can be used to generate dumps at request or by rule configuration. –Designed for minimal performance impact  How do you use it: – Basic Instructions: • http://support.microsoft.com/kb/2580960 –Read the whitepaper: • http://www.microsoft.com/download/en/details.aspx?id=23521 –Use the in-built help documentation. 23 © 2013 IBM Corporation
  • 24. Debug Diagnostic Tool – native memory analysis  Our main use of this tool is for debuging native memory issues. –The key thing to remember is to always inject the leak track dll, without this the reports you generate will be basic. – –The optimal method of analysis involves taking multple dumps of the process as its virtual size grows, understanding the rate of growth between dumps is important and can be monitored using the performance monitor tool. – –Dumps can be generated directly from the UI or rules can be configured to generate dumps after a set amount of time or increase in memory usage. – –Once dumps are generated you load them into the tool and select to run the Memory pressure script. When complete the tool will open the report in a browser window. – 24 © 2013 IBM Corporation
  • 25. Debug Diagnostic Tool – native memory report  The report is broken into distinct sections: • Virtual Memory Analysis Report • Heap Analysis Report • Leak Analysis Report (only with leak tracking) •  The following extracts are taken from results of monitoring a 64 bit process which has a maximum address space of 8 Tbytes.  Each report starts with a summary which contains some key pieces of information:  25 © 2013 IBM Corporation
  • 26. Debug Diagnostic Tool – Virtual Memory Analysis Report  Contains: • Virtual Memory Summary • Virtual Memory Details • Virtual Allocation Summary • Loaded Module Summary • Thread Summary  The most pertinent details are the first three elements • 26 © 2013 IBM Corporation
  • 27. Debug Diagnostic Tool – Heap Analysis Report  The heap analysis report contains information on the Heaps in use within the process.   Not to be confused with the JVM's heap.  27 © 2013 IBM Corporation
  • 28. Debug Diagnostic Tool – Heap Details  For each heap you get: – A summary – Information on the Heap segments – Information on allocations  The Summary:  28 © 2013 IBM Corporation
  • 29. Debug Diagnostic Tool – Heap Details  The Segment info: 29 © 2013 IBM Corporation
  • 30. Debug Diagnostic Tool – Heap Details  The Allocation Summary: 30 © 2013 IBM Corporation
  • 31. Debug Diagnostic Tool – Leak Analysis Report  Only available when the leaktrack dll is injected to the process being monitored.  The most useful aspect is the summary of allocations at the module level: – By Count: –  31 © 2013 IBM Corporation
  • 32. Debug Diagnostic Tool – Leak Analysis Report – and by Size: –  32 © 2013 IBM Corporation
  • 33. Debug Diagnostic Tool – Module Summary  For each module we get a more detailed breakdown including a summary:  33 © 2013 IBM Corporation
  • 34. Debug Diagnostic Tool – Module Summary  We get a summary of functions by count and allocated size:  34 © 2013 IBM Corporation
  • 35. Debug Diagnostic Tool – Module Summary  And for each function additional detail:  35 © 2013 IBM Corporation
  • 36. Debug Diagnostic Tool – Module Summary  Allocation count and size breakdown:   36 © 2013 IBM Corporation
  • 37. Debug Diagnostic Tool – Module Summary  And sample call stacks for prominent sizes:   37 © 2013 IBM Corporation
  • 38. Debug Diagnostic Tool – Drawing conclusions  The tool provides a lot of information, but doesn't do comparison of multiple data sets.  Using a spreadsheet to capture the pertinent data points highlighted over the previous slides will build a picture that allow you to see the key areas that are causing growth. – You can even plot the data for easier visualization   38 © 2013 IBM Corporation
  • 39. VMMAP  Where to get it: • http://technet.microsoft.com/en-us/sysinternals/dd535533  What is it: –A tool for analysis the virtual and physical memory usage of a windows process  What does it let us do: –Attaches to live processes for run time analysis and allows for export of process information in a variety of formats. –Provides a facility to launch a process and trace it which utilizes additional instrumentation that enables us to identify the stacks allocating into specific regions of memory. –Allows us to compare the contents of the address space between two different points in time, when tracing is enabled you can see exactly who is allocating into regions. –At any time you can flush the physical memory the process is using meaning this is a great tool for seeing just how much memory a particular feature of your application uses. – – 39 © 2013 IBM Corporation
  • 40. VMMAP  Having attached or launched a process you will see a window like this:  Each time you refresh the view a new snapshot is created 40 © 2013 IBM Corporation
  • 41. VMMAP – Comparing snapshots  First you have to open the timeline window:       Next you left click and drag to select the timeframe you wish to view: • Snapshots are represented by the small black lines: 41 © 2013 IBM Corporation
  • 42. VMMAP – Comparing snapshots  Once selected you will see: 42 © 2013 IBM Corporation
  • 43. VMMAP – Comparing snapshots  Address ranges that are in the most recent snapshot but not in the earliest are highlighted in bright green.  Address ranges that were in the earliest snapshot but not in the current are highlighted in bright red.  If you started the process under full tracing you can select a “HEAP” and view the allocations made within it between the snapshots, for each allocation you can also view the call stack.   43 © 2013 IBM Corporation
  • 44. VMMAP – other features  When tracing is enabled you have the option to view a trace of key memory operations by selecting the trace option which lists: • Allocation sites • Number of allocations for the site • The number of bytes allocated • The type of operation •  You can also select any site and choose to view its stack. 44 © 2013 IBM Corporation
  • 45. Q&A  Questions 45 © 2013 IBM Corporation