This training comprises of 2 sessions
Session -1 (Theory)
1. Understanding Dump File
2. Varieties of Dump File
3. Creation of Dump File
4. Terminologies for analyzing of Dump File
5. Introduction to WinDbg
Session -2 ( Lab)
1. Postmortem Debugger Settings
2. WinDbg Setup
3. Dump File creation using Tools
4. Dump File creation using Win32 API
5. Dump File Analyzing case study
For Download, drop mail to contactshanmugaks@gmail.com
Presentation from DICE Coder's Day (2010 November) by Johan Torp:
This talk is about making object-oriented code more cache-friendly and how we can incrementally move towards parallelizable data-oriented designs. Filled with production code examples from Frostbite’s pathfinding implementation.
Operating and Supporting Delta Lake in ProductionDatabricks
Delta lake is widely adopted. There are things to be aware of when dealing with petabytes of data in Delta Lake. These smart decisions can give the best efficiency and increase the adoption of Delta. Best practices like OPTIMIZE, ZORDER have to wisely chosen. We have support stories where we successfully resolved performance issues by applying the right performance strategy. There are a set of common issues or repeated questions from our strategic customers face when using Delta and in this session we cover them and how to address them.
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
In this talk, I will dive into the stage level scheduling feature added to Apache Spark 3.1. Stage level scheduling extends upon Project Hydrogen by improving big data ETL and AI integration and also enables multiple other use cases. It is beneficial any time the user wants to change container resources between stages in a single Apache Spark application, whether those resources are CPU, Memory or GPUs. One of the most popular use cases is enabling end-to-end scalable Deep Learning and AI to efficiently use GPU resources. In this type of use case, users read from a distributed file system, do data manipulation and filtering to get the data into a format that the Deep Learning algorithm needs for training or inference and then sends the data into a Deep Learning algorithm. Using stage level scheduling combined with accelerator aware scheduling enables users to seamlessly go from ETL to Deep Learning running on the GPU by adjusting the container requirements for different stages in Spark within the same application. This makes writing these applications easier and can help with hardware utilization and costs.
There are other ETL use cases where users want to change CPU and memory resources between stages, for instance there is data skew or perhaps the data size is much larger in certain stages of the application. In this talk, I will go over the feature details, cluster requirements, the API and use cases. I will demo how the stage level scheduling API can be used by Horovod to seamlessly go from data preparation to training using the Tensorflow Keras API using GPUs.
The talk will also touch on other new Apache Spark 3.1 functionality, such as pluggable caching, which can be used to enable faster dataframe access when operating from GPUs.
Presentation from DICE Coder's Day (2010 November) by Johan Torp:
This talk is about making object-oriented code more cache-friendly and how we can incrementally move towards parallelizable data-oriented designs. Filled with production code examples from Frostbite’s pathfinding implementation.
Operating and Supporting Delta Lake in ProductionDatabricks
Delta lake is widely adopted. There are things to be aware of when dealing with petabytes of data in Delta Lake. These smart decisions can give the best efficiency and increase the adoption of Delta. Best practices like OPTIMIZE, ZORDER have to wisely chosen. We have support stories where we successfully resolved performance issues by applying the right performance strategy. There are a set of common issues or repeated questions from our strategic customers face when using Delta and in this session we cover them and how to address them.
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
In this talk, I will dive into the stage level scheduling feature added to Apache Spark 3.1. Stage level scheduling extends upon Project Hydrogen by improving big data ETL and AI integration and also enables multiple other use cases. It is beneficial any time the user wants to change container resources between stages in a single Apache Spark application, whether those resources are CPU, Memory or GPUs. One of the most popular use cases is enabling end-to-end scalable Deep Learning and AI to efficiently use GPU resources. In this type of use case, users read from a distributed file system, do data manipulation and filtering to get the data into a format that the Deep Learning algorithm needs for training or inference and then sends the data into a Deep Learning algorithm. Using stage level scheduling combined with accelerator aware scheduling enables users to seamlessly go from ETL to Deep Learning running on the GPU by adjusting the container requirements for different stages in Spark within the same application. This makes writing these applications easier and can help with hardware utilization and costs.
There are other ETL use cases where users want to change CPU and memory resources between stages, for instance there is data skew or perhaps the data size is much larger in certain stages of the application. In this talk, I will go over the feature details, cluster requirements, the API and use cases. I will demo how the stage level scheduling API can be used by Horovod to seamlessly go from data preparation to training using the Tensorflow Keras API using GPUs.
The talk will also touch on other new Apache Spark 3.1 functionality, such as pluggable caching, which can be used to enable faster dataframe access when operating from GPUs.
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...Andrew Lamb
DataFusion is an extensible and embeddable query engine, written in Rust used to create modern, fast and efficient data pipelines, ETL processes, and database systems.
This presentation explains where it fits into the data eco system and how it helps implement your system in Rust
Memory management is at the heart of any data-intensive system. Spark, in particular, must arbitrate memory allocation between two main use cases: buffering intermediate data for processing (execution) and caching user data (storage). This talk will take a deep dive through the memory management designs adopted in Spark since its inception and discuss their performance and usability implications for the end user.
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...ScyllaDB
MongoDB has become the prominent NoSQL database engine and is now used for a wide variety of use cases because of its flexibility and ease of use for developers, while Scylla, a C++ rewrite of Cassandra, provides benefits through its architectural approach, including getting rid of the JVM and a CPU-level design that gets the most out of your hardware thanks to a CPU level design.
Numberly has been using MongoDB for over a decade and Scylla for over a year in production. The benefits of the Scylla architecture allied to the Cassandra ecosystem fuel a rapid adoption in a very wide range of use cases: from real-time data pipelines and analytics batches processing to web applications database backend.
Learn the motivations of such an adoption trend and why it proves to be successful so far while outlining its limits and why MongoDB is still here to stay!
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtAnne Nicolas
Ftrace is the official tracer of the Linux kernel. It has been apart of Linux since 2.6.31, and has grown tremendously ever since. Ftrace’s name comes from its most powerful feature: function tracing. But the ftrace infrastructure is much more than that. It also encompasses the trace events that are used by perf, as well as kprobes that can dynamically add trace events that the user defines.
This talk will focus on learning how the kernel works by using the ftrace infrastructure. It will show how to see what happens within the kernel during a system call; learn how interrupts work; see how ones processes are being scheduled, and more. A quick introduction to some tools like trace-cmd and KernelShark will also be demonstrated.
Steven Rostedt, VMware
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Tim Bunce
The slides of my "State-of-the-art Profiling with Devel::NYTProf" talk at OSCON in July 2009.
I'll upload a screencast and give the link in a blog post at http://blog.timbunce.org
- Understanding Time Series
- What's the Fundamental Problem
- Prometheus Solution (v1.x)
- New Design of Prometheus (v2.x)
- Data Compression Algorithm
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroDatabricks
Zstandard is a fast compression algorithm which you can use in Apache Spark in various way. In this talk, I briefly summarized the evolution history of Apache Spark in this area and four main use cases and the benefits and the next steps:
1) ZStandard can optimize Spark local disk IO by compressing shuffle files significantly. This is very useful in K8s environments. It’s beneficial not only when you use `emptyDir` with `memory` medium, but also it maximizes OS cache benefit when you use shared SSDs or container local storage. In Spark 3.2, SPARK-34390 takes advantage of ZStandard buffer pool feature and its performance gain is impressive, too.
2) Event log compression is another area to save your storage cost on the cloud storage like S3 and to improve the usability. SPARK-34503 officially switched the default event log compression codec from LZ4 to Zstandard.
3) Zstandard data file compression can give you more benefits when you use ORC/Parquet files as your input and output. Apache ORC 1.6 supports Zstandardalready and Apache Spark enables it via SPARK-33978. The upcoming Parquet 1.12 will support Zstandard compression.
4) Last, but not least, since Apache Spark 3.0, Zstandard is used to serialize/deserialize MapStatus data instead of Gzip.
There are more community works to utilize Zstandard to improve Spark. For example, Apache Avro community also supports Zstandard and SPARK-34479 aims to support Zstandard in Spark’s avro file format in Spark 3.2.0.
How to use Parquet as a basis for ETL and analyticsJulien Le Dem
Parquet is a columnar format designed to be extremely efficient and interoperable across the hadoop ecosystem. Its integration in most of the Hadoop processing frameworks (Impala, Hive, Pig, Cascading, Crunch, Scalding, Spark, …) and serialization models (Thrift, Avro, Protocol Buffers, …) makes it easy to use in existing ETL and processing pipelines, while giving flexibility of choice on the query engine (whether in Java or C++). In this talk, we will describe how one can us Parquet with a wide variety of data analysis tools like Spark, Impala, Pig, Hive, and Cascading to create powerful, efficient data analysis pipelines. Data management is simplified as the format is self describing and handles schema evolution. Support for nested structures enables more natural modeling of data for Hadoop compared to flat representations that create the need for often costly joins.
Materialized Column: An Efficient Way to Optimize Queries on Nested ColumnsDatabricks
In data warehouse area, it is common to use one or more columns in complex type, such as map, and put many subfields into it. It may impact the query performance dramatically because: 1) It is a waste of IO. The whole column (in map), which may contain tens of subfields, need to be read. And Spark will traverse the whole map and get the value of the target key. 2) Vectorized read can not be exploit when nested type column is read. 3) Filter pushdown can not be utilized when nested columns is read. Over the last year, we have added a series of optimizations in Apache Spark to solve the above problems for Parquet.
Killzone Shadow Fall: Threading the Entity Update on PS4jrouwe
On the PS3 the SPUs were too limited for doing typical entity logic (e.g. humanoids walking around and shooting), so all of our entity logic was running on a single thread. For the PS4 we adopted the "entity as a job" approach and developed a set of rules that entities have to adhere to. We also developed a way to validate these rules at runtime so that no race conditions occur. This presentation will also show how we spread out entity updates across frames. The resulting system has proven itself on the PS4 -- and there have been surprisingly few race conditions that were not easily caught.
In this talk, we look at WinDbg, a powerful debugger that can help resolve difficult errors in production environments. We use WinDbg to pinpoint stack traces given dump files generated in production, to find memory leak causes and inspect heap memory, and even to automatically walk objects and threads to find deadlocks.
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...Andrew Lamb
DataFusion is an extensible and embeddable query engine, written in Rust used to create modern, fast and efficient data pipelines, ETL processes, and database systems.
This presentation explains where it fits into the data eco system and how it helps implement your system in Rust
Memory management is at the heart of any data-intensive system. Spark, in particular, must arbitrate memory allocation between two main use cases: buffering intermediate data for processing (execution) and caching user data (storage). This talk will take a deep dive through the memory management designs adopted in Spark since its inception and discuss their performance and usability implications for the end user.
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...ScyllaDB
MongoDB has become the prominent NoSQL database engine and is now used for a wide variety of use cases because of its flexibility and ease of use for developers, while Scylla, a C++ rewrite of Cassandra, provides benefits through its architectural approach, including getting rid of the JVM and a CPU-level design that gets the most out of your hardware thanks to a CPU level design.
Numberly has been using MongoDB for over a decade and Scylla for over a year in production. The benefits of the Scylla architecture allied to the Cassandra ecosystem fuel a rapid adoption in a very wide range of use cases: from real-time data pipelines and analytics batches processing to web applications database backend.
Learn the motivations of such an adoption trend and why it proves to be successful so far while outlining its limits and why MongoDB is still here to stay!
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtAnne Nicolas
Ftrace is the official tracer of the Linux kernel. It has been apart of Linux since 2.6.31, and has grown tremendously ever since. Ftrace’s name comes from its most powerful feature: function tracing. But the ftrace infrastructure is much more than that. It also encompasses the trace events that are used by perf, as well as kprobes that can dynamically add trace events that the user defines.
This talk will focus on learning how the kernel works by using the ftrace infrastructure. It will show how to see what happens within the kernel during a system call; learn how interrupts work; see how ones processes are being scheduled, and more. A quick introduction to some tools like trace-cmd and KernelShark will also be demonstrated.
Steven Rostedt, VMware
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Tim Bunce
The slides of my "State-of-the-art Profiling with Devel::NYTProf" talk at OSCON in July 2009.
I'll upload a screencast and give the link in a blog post at http://blog.timbunce.org
- Understanding Time Series
- What's the Fundamental Problem
- Prometheus Solution (v1.x)
- New Design of Prometheus (v2.x)
- Data Compression Algorithm
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroDatabricks
Zstandard is a fast compression algorithm which you can use in Apache Spark in various way. In this talk, I briefly summarized the evolution history of Apache Spark in this area and four main use cases and the benefits and the next steps:
1) ZStandard can optimize Spark local disk IO by compressing shuffle files significantly. This is very useful in K8s environments. It’s beneficial not only when you use `emptyDir` with `memory` medium, but also it maximizes OS cache benefit when you use shared SSDs or container local storage. In Spark 3.2, SPARK-34390 takes advantage of ZStandard buffer pool feature and its performance gain is impressive, too.
2) Event log compression is another area to save your storage cost on the cloud storage like S3 and to improve the usability. SPARK-34503 officially switched the default event log compression codec from LZ4 to Zstandard.
3) Zstandard data file compression can give you more benefits when you use ORC/Parquet files as your input and output. Apache ORC 1.6 supports Zstandardalready and Apache Spark enables it via SPARK-33978. The upcoming Parquet 1.12 will support Zstandard compression.
4) Last, but not least, since Apache Spark 3.0, Zstandard is used to serialize/deserialize MapStatus data instead of Gzip.
There are more community works to utilize Zstandard to improve Spark. For example, Apache Avro community also supports Zstandard and SPARK-34479 aims to support Zstandard in Spark’s avro file format in Spark 3.2.0.
How to use Parquet as a basis for ETL and analyticsJulien Le Dem
Parquet is a columnar format designed to be extremely efficient and interoperable across the hadoop ecosystem. Its integration in most of the Hadoop processing frameworks (Impala, Hive, Pig, Cascading, Crunch, Scalding, Spark, …) and serialization models (Thrift, Avro, Protocol Buffers, …) makes it easy to use in existing ETL and processing pipelines, while giving flexibility of choice on the query engine (whether in Java or C++). In this talk, we will describe how one can us Parquet with a wide variety of data analysis tools like Spark, Impala, Pig, Hive, and Cascading to create powerful, efficient data analysis pipelines. Data management is simplified as the format is self describing and handles schema evolution. Support for nested structures enables more natural modeling of data for Hadoop compared to flat representations that create the need for often costly joins.
Materialized Column: An Efficient Way to Optimize Queries on Nested ColumnsDatabricks
In data warehouse area, it is common to use one or more columns in complex type, such as map, and put many subfields into it. It may impact the query performance dramatically because: 1) It is a waste of IO. The whole column (in map), which may contain tens of subfields, need to be read. And Spark will traverse the whole map and get the value of the target key. 2) Vectorized read can not be exploit when nested type column is read. 3) Filter pushdown can not be utilized when nested columns is read. Over the last year, we have added a series of optimizations in Apache Spark to solve the above problems for Parquet.
Killzone Shadow Fall: Threading the Entity Update on PS4jrouwe
On the PS3 the SPUs were too limited for doing typical entity logic (e.g. humanoids walking around and shooting), so all of our entity logic was running on a single thread. For the PS4 we adopted the "entity as a job" approach and developed a set of rules that entities have to adhere to. We also developed a way to validate these rules at runtime so that no race conditions occur. This presentation will also show how we spread out entity updates across frames. The resulting system has proven itself on the PS4 -- and there have been surprisingly few race conditions that were not easily caught.
In this talk, we look at WinDbg, a powerful debugger that can help resolve difficult errors in production environments. We use WinDbg to pinpoint stack traces given dump files generated in production, to find memory leak causes and inspect heap memory, and even to automatically walk objects and threads to find deadlocks.
How do you deal with issues that happen in production? Error and Event logs are helpful but often they provide little to no help with things like deadlocks and memory leaks.
In this session we'll explore some low level utilities that allow us to take snapshots of running code and bring it back in house for analysis.
Visual studio is the one shop stop for most .NET developers; it’s a shame since there are other powerful tools out there.
WinDbg is such a tool – it can help analyze and solve bugs, memory issues, deadlocks and is crucial to solving bugs that are found on the client machines.
The problem is that WinDbg is not as friendly as Visual Studio (to say the least) – or is it?
In this talk I’ll show how a .NET developer can use WinDbg to crash bugs.
Grokking Techtalk #38: Escape Analysis in Go compilerGrokking VN
Trong quá trình phân tích hiệu năng, hiểu và nắm vững ngôn ngữ lập trình cũng như cách thiết kế của nó là rất hữu ích. Go là một trong những ngôn ngữ được sử dụng phổ biến trong các hệ thống phân tán có hiệu năng cao. Để hiểu rõ hơn cách mà Go compiler phân tích cách cấp phát bộ nhớ khi biên dịch chương trình, hãy nghe những chia sẻ của anh Cường về Escape Analysis trong Go compiler.
Về diễn giả:
Anh Lê Mạnh Cường là một kĩ sư phần mềm có 8 năm kinh nghiệm chuyên sâu trong backend và Quản trị hệ thống Linux. Là một OSS contributor tích cực, anh Cường đã có nhiều cống hiến vào cộng đồng mã nguồn mở, đặc biệt là Go và ecosystem của Go.
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live foreverPGDay.Amsterdam
Bruce will explain how open source software can live for a very long time, and covers the differences between proprietary and open source software life cycles. He will also cover the increased adoption of open source, and many of the ways that Postgres is innovating to continue to be relevant.
MongoDB and DigitalOcean Automation with Cloud ManagerJay Gordon
Cloud Manager automation is an easy way to create new MongoDB deployments without having to do much of the underlying configuration work. This talk is how you can get started using automation on your droplets.
Check out the webinar: https://imply.io/videos/whats-new-imply-3-3-apache-druid-0-18
The most recent Imply 3.3 release, based on Apache 0.18 brings several major new features, including joins, query laning and Clarity Alerts. These new features deliver increased design flexibility during design, and provide improved ingestion performance, and sub-second response times to help accelerate data warehouse and data lake deployments, and add real-time analytics in general.
Дмитрий Демчук. Кроссплатформенный краш-репортSergey Platonov
Доклад будет посвящен возможностям библиотеки Google Breakpad по созданию краш-репорта. Посмотрим как это работает изнутри.
На примерах будут рассмотрены способы интеграции библиотеки на разных платформах Windows, Linux, Max OS.
Serverless observability - a hero's perspectiveYan Cui
Yan Cui, an AWS Serverless Hero, will talk about the learnings from using serverless at scale.
He will cover the challenges for observability in serverless asynchronous workloads and the patterns to address those challenges, like using centralized logging, correlation IDs, tracing, lambda extensions.
This presentation includes basic of PCOS their pathology and treatment and also Ayurveda correlation of PCOS and Ayurvedic line of treatment mentioned in classics.
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
The simplified electron and muon model, Oscillating Spacetime: The Foundation...RitikBhardwaj56
Discover the Simplified Electron and Muon Model: A New Wave-Based Approach to Understanding Particles delves into a groundbreaking theory that presents electrons and muons as rotating soliton waves within oscillating spacetime. Geared towards students, researchers, and science buffs, this book breaks down complex ideas into simple explanations. It covers topics such as electron waves, temporal dynamics, and the implications of this model on particle physics. With clear illustrations and easy-to-follow explanations, readers will gain a new outlook on the universe's fundamental nature.
Thinking of getting a dog? Be aware that breeds like Pit Bulls, Rottweilers, and German Shepherds can be loyal and dangerous. Proper training and socialization are crucial to preventing aggressive behaviors. Ensure safety by understanding their needs and always supervising interactions. Stay safe, and enjoy your furry friends!
This presentation was provided by Steph Pollock of The American Psychological Association’s Journals Program, and Damita Snow, of The American Society of Civil Engineers (ASCE), for the initial session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session One: 'Setting Expectations: a DEIA Primer,' was held June 6, 2024.
4. Page 4 2013
By K.S.Shanmuga sundaram
Agenda – Session1
Understanding Dump File1
Varieties of Dump File2
Creation of Dump File3
Terminologies for analyzing of Dump File4
Introduction to WinDbg5
5. Page 5 2013
By K.S.Shanmuga sundaram
Agenda – Session1
Understanding Dump File1
Varieties of Dump File2
Creation of Dump File3
Terminologies for analyzing of Dump File4
Introduction to WinDbg5
6. Page 6 2013
By K.S.Shanmuga sundaram
Varieties of Bugs
Bugs
Arithmetic
Logical
syntax
Resource
Multi
Threaded
Perform -
ance
User
Interface
7. Page 7 2013
By K.S.Shanmuga sundaram
Impact of Bug on Application
Application may Malfunction
Application may Crash
Application may Hang
8. Page 8 2013
By K.S.Shanmuga sundaram
Application crash
Arises due to unhandled exception
9. Page 9 2013
By K.S.Shanmuga sundaram
Application Hang
May arise due to Deadlock.
May arise due to High CPU usage.
10. Page 10 2013
By K.S.Shanmuga sundaram
How to Fix Crash / Hang Issue?
1. Store Application state
i.e.
Process(s) Info,
Thread(s) Info,
Loaded Module Info,
Register Info,
Memory Info,
Handle Info,
Callstack Info,
Etc.,
2. Start Analyze to find the root cause of the issue.
Process
Dump
Information
11. Page 11 2013
By K.S.Shanmuga sundaram
What is Dump File?
Definition:- Static snap shot of an application at any given time.
Fact sheet
File Format Binary File Format
File
Extension
.DMP - Stands for Dump
Contents Process, Thread, Stack,Callstack, Handles, Modules, etc.,
Usage
(i) Debugging Crashing application.
(ii) Debugging Hanging application.
Other
terms
Crash dump, Core Dump, Hang Dump, Heap Dump,
Memory Dump, Process dump or just dump.
12. Page 12 2013
By K.S.Shanmuga sundaram
Agenda – Session1
Understanding Dump File1
Varieties of Dump File2
Creation of Dump File3
Terminologies for analyzing of Dump File4
Introduction to WinDbg5
13. Page 13 2013
By K.S.Shanmuga sundaram
Physical Memory Layout
User
Space
Kernel
Space
Kernel Process
User Process
Kernel Process
Kernel Process
User Process
User Process
Access Restricted
14. Page 14 2013
By K.S.Shanmuga sundaram
Physical Memory Layout – 32 bit
User
Space
Kernel
Space
4 GB
2 GB
0
2
32
15. Page 15 2013
By K.S.Shanmuga sundaram
Physical Memory Layout – 32 bit
User
Space
Kernel
Space
4 GB
3 GB
0
with /3GB switch in boot.ini file
2
32
17. Page 17 2013
By K.S.Shanmuga sundaram
Agenda – Session1
Understanding Dump File1
Varieties of Dump File2
Creation of Dump File3
Terminologies for analyzing of Dump File4
Introduction to WinDbg5
20. Page 20 2013
By K.S.Shanmuga sundaram
Dump File creation
using Win32 API
API Name MiniDumpWriteDump
DLL Dbghelp.dll
Header file Dbghelp.h
Arguments
HANDLE hProcess Target process handle.
DWORD ProcessId Target process ID.
HANDLE hFile Dump file handle.
MINIDUMP_TYPE DumpType Type of information to be written dump
file
PMINIDUMP_EXCEPTION_INFORMATION
ExceptionParam,
Pointer to Exception info like ThreadID,
Exception pointers.
PMINIDUMP_USER_STREAM_INFORMATION
UserStreamParam
Pointer to user defined information.
[Optional]
PMINIDUMP_CALLBACK_INFORMATION
CallbackParam
Callback to receive extended dump
information. [Optional].
21. Page 21 2013
By K.S.Shanmuga sundaram
Dump File creation
using Win32 API
Argument MINIDUMP_TYPE DumpType
Description
Enumerator constants. It can have any one of the values
MiniDumpNormal
MiniDumpWithDataSegs
MiniDumpWithFullMemory
MiniDumpWithHandleData
MiniDumpFilterMemory
MiniDumpScanMe
MiniDumpWithUnloadedModules
MiniDumpWithIndirectlyReferencedMe
mory
MiniDumpFilterModulePaths
MiniDumpWithProcessThreadData
MiniDumpWithPrivateReadWriteMe
mory
MiniDumpWithoutOptionalData
MiniDumpWithFullMemoryInfo
MiniDumpWithThreadInfo
MiniDumpWithCodeSegs
22. Page 22 2013
By K.S.Shanmuga sundaram
Kernel Dump creation
using System settings
23. Page 23 2013
By K.S.Shanmuga sundaram
Agenda – Session1
Understanding Dump File1
Varieties of Dump File2
Creation of Dump File3
Terminologies for analyzing of Dump File4
Introduction to WinDbg5
24. Page 24 2013
By K.S.Shanmuga sundaram
Symbols
Global variables
Local variables
Function names and the addresses of their entry points
Frame pointer omission (FPO) records
Source File name and line number for each Instruction
Functions (except for functions declared static)
Global variables specified as extern
(and any other global variables visible across multiple object files)
Also called as Full Symbol
Also called as Stripped Symbol
Stores Debugging information about a program
25. Page 25 2013
By K.S.Shanmuga sundaram
Symbols in detail
Name of the item
Address of the item in virtual memory
Frame pointer omission (FPO) records for each function
Data type of each variable, structure, and function
Types and names of the parameters for each function
Scope of each local variable
Symbols associated with each line in each source file
The name of the item.
The address of the item in the virtual memory space of its module.
For a function, this is the address of its entry point.
Frame pointer omission (FPO) records for each function.
26. Page 26 2013
By K.S.Shanmuga sundaram
Symbols Relation
Public symbol data can be thought of as a subset of the private symbol .
27. Page 27 2013
By K.S.Shanmuga sundaram
Symbol File Format
PDB stands for “Program Database”
Fact sheet
Microsoft proprietary file format (.pdb)
Extracted from Source files ( .cpp,.c, ,cs, etc.,).
PDB file information extracted by using the DIA (Debug Interface Access) SDK.
A .NET PDB file only contains only Source Filename, Line number , Local
variable names as .NET Metadata already contains rest of the symbols.
Visual studio 5.0 generates .dbg file format.
28. Page 28 2013
By K.S.Shanmuga sundaram
Dump file relation
• DMP
• PDB
• DBG
• C
• CPP
• H
• CS
• EXE
• DLL
• LIB
29. Page 29 2013
By K.S.Shanmuga sundaram
Application Dependency
30. Page 30 2013
By K.S.Shanmuga sundaram
Dump File Dependency
IMAGE SYMBOLS SOURCES
Required
Files
For
Dump
File
Analysing
31. Page 31 2013
By K.S.Shanmuga sundaram
Process & Threads
User
Space
Kernel
Space
User Process
Thread 1
Thread 2
Thread N
1 MB Stack Memory
1 MB Stack Memory
1 MB Stack Memory
32. Page 32 2013
By K.S.Shanmuga sundaram
Stack
User
Space
Kernel
Space
Stack Memory – Thread 1
Committed
Guard
ReservedStack Memory – Thread 2
Stack Memory – Thread 3
Stack
Growth
34. Page 34 2013
By K.S.Shanmuga sundaram
C compiler Name Mangling
Function
Name
Function
Address
Method1() 0x1234
Method1() 0x3423
Method2() 0x1654
Void Method1(int)
{
Do something…
}
Void Method1(char)
{
Do something…
}
Void Method2(int,int)
{
Do something…
}
Void main()
{
Method1(20);
Method1(‘a’);
Method2(40,50);
}
Typical Representation
__Method1_0x1234
__Method1_0x3423
__Method2_0x1654
35. Page 35 2013
By K.S.Shanmuga sundaram
C++ compiler Name Mangling
Void Method1(int)
{
Do something…
}
Void Method1(char)
{
Do something…
}
Void Method2(int,int)
{
Do something…
}
Void main()
{
Method1(20);
Method1(‘a’);
Method2(40,50);
}
Typical Representation
__Method1_1_@INT_0x1234
__Method1_1_@CHAR_0x3423
__Method2_2_@INT_@INT_0x1654
Function
Name
No of
Param
Param
Type
Function
Address
Method1() 1 Int 0x1234
Method1() 1 Char 0x3423
Method2() 2 Int,Int 0x1654
37. Page 37 2013
By K.S.Shanmuga sundaram
Calling convention comparison
38. Page 38 2013
By K.S.Shanmuga sundaram
Exception Dispatching
Debugger
Frame
Handlers
Operation System
Default
Post Mortem
Debugger
Windows Error
Reporting
First
Chance
exception
Second
Chance
exception
Unhandled
exceptions
1
2
3
4
6
8
Exception
5 7 9
39. Page 39 2013
By K.S.Shanmuga sundaram
C++ Exception Test
void TestMethod
{
int Temp = 100;
Temp = Temp /(Temp-Temp);
}
void main()
{
try
{
TestMethod();
}
catch(…)
{
printf(“ Exception Caught”);
}
}
Is
Program
will
crash?
40. Page 40 2013
By K.S.Shanmuga sundaram
C++ Exception Answer
C/C++ --> Code Generation --> Enable C++ Exceptions
C++
Exceptions
Command
line Option
Remarks
No No Exception handled.
Yes /EHsc Only C++ Exception handled.
With SEH /EHa
Both C++ and SEH exception handled.
(Destructor will not be called on stack unwinding)
42. Page 42 2013
By K.S.Shanmuga sundaram
Agenda – Session1
Understanding Dump File1
Varieties of Dump File2
Creation of Dump File3
Terminologies for analyzing of Dump File4
Introduction to WinDbg5
43. Page 43 2013
By K.S.Shanmuga sundaram
WinDbg – A Introduction
Microsoft Windows Debugger
GUI Debugger.
Both user and kernel mode debugger.
Non-Invasive Debugger.
Freeware.
Light weight
44. Page 44 2013
By K.S.Shanmuga sundaram
WinDbg – Command Types
Command Types Description
Regular Commands Used debug processes
Meta or Dot-Commands usually to control the behavior of the debugger
Extension Commands
implemented as exported functions in extension
DLLs
45. Page 45 2013
By K.S.Shanmuga sundaram
WinDbg – Commands
Command Types Examples
Regular Commands K
Meta or Dot-Commands .cls, .reload, .time
Extension Commands !analyze, !locks, !teb, !peb
46. Page 46 2013
By K.S.Shanmuga sundaram
WinDbg Commands
Command Description
!analyze –v Analyze Exceptions.
!analyze -hang –v Analyze Hanging.
!gle Get Last Error.
.lastevent Get last exception Event.
.ecxr Display Exception context.
!sym noisy While loading symbols displays error information. Be
default it is OFF.
K Display Call stack.
ld * Load all Modules.
!for_each_frame Display call stack with Frame number.
.frame N Set “N” Frame as context
47. Page 47 2013
By K.S.Shanmuga sundaram
WinDbg Commands
Command Description
.reload /f /v /i Load all modules forecefully with verbose
!teb Thread Environment block ( Formatted output)
!peb Process Environment block ( Formatted output)
!runaway Displays information about time consumed by each
thread.
dt nt!_TEB Full Thread Environment block
~ Display all threads Info
|| Display process Info
!wow64exts.sw Switches 64bit dump file into 32bit.
dt ModulName!* Display all available data type in a module.
dt ModulName!Type Display declaration for a given data type.
48. Page 48 2013
By K.S.Shanmuga sundaram
WinDbg Commands
Command Description
.symopt Display Current Symbol loading settings
.symopt +0x40 Forcefully try to match PDB with Target Binary.
set's flag of "SYMOPT_LOAD_ANYTHING".
It mean it will not check for timestamp
!locks Display critical section Info
!handles Display handles Info
49. Page 49 2013
By K.S.Shanmuga sundaram
Any Questions?
Session - 1
51. Page 51 2013
By K.S.Shanmuga sundaram
Agenda – Session2
Postmortem Debugger Settings1
WinDbg Setup2
Dump File creation using Tools3
Dump File creation using Win32 API4
Dump File Analyzing case study5
52. Page 52 2013
By K.S.Shanmuga sundaram
Agenda – Session2
Postmortem Debugger Setup1
WinDbg Setup2
Dump File creation using Tools3
Dump File creation using Win32 API4
Dump File Analyzing case study5
53. Page 53 2013
By K.S.Shanmuga sundaram
Registry Path
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NT
CurrentVersion AeDebug
Registry Values
Value Name Remarks
Debugger Debugger Executable full path
Auto
0 - message box will be displayed prior to postmortem
debugging.
1 - No message box.
Postmortem Debugger Setup
Registry Settings - Windows XP and prior OS.
54. Page 54 2013
By K.S.Shanmuga sundaram
Registry Path
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindow
s Error ReportingLocalDumps
In case of 64 bit set corrresponding registry locations (wow64).
Registry Path
Value Name Value Data
DumpFolder Dump file complete path
DumpCount Total Dump file count
DumpType 0 - custom, 1 - Mini, 2 – Full
CustomDumpFlags
Valid if DumpType=0, Possible hexadecimal values =
0,1,2,4,8,10,20,40,80,100,200,400,800,1000,2000,4000,100
00, 20000,40000,80000,100000,1fffff.
Refer MSDN for details.
Postmortem Debugger Setup
Registry Settings - Windows Server 2008, Vista with SP1 and 7.0.
58. Page 58 2013
By K.S.Shanmuga sundaram
WinDbg Setup
Symbol, Image & Source path Setup
Path
Type
File type Files
Symbol
path
Program database files (.pdb)
Target application,
Windows binaries,
and all dependents binaries.
Source
path
Source files (.cpp & .h, .cs)
Target application,
CRT libraries,
and all dependent binaries.
Image
Path
Binary files (.exe, .dll)
Target application,
Windows dll,
and all dependents.
59. Page 59 2013
By K.S.Shanmuga sundaram
Agenda – Session2
Postmortem Debugger Settings1
WinDbg Setup2
Dump File creation using Tools3
Dump File creation using Win32 API4
Dump File Analyzing case study5
60. Page 60 2013
By K.S.Shanmuga sundaram
Dump File Creation
Using Tools
Tool Remarks
Process
Explorer
Right Click Create Dump
ProcDump procdump.exe -ma Target.exe
WinDbg
WinDbg -pv -pn Target.exe -c ".dump /ma
DumpFileName.dmp;q"
Task
Manager
Right Click Create Dump
Dr.Watson Drwatson.exe (Enable Create Dump File)
61. Page 61 2013
By K.S.Shanmuga sundaram
Agenda – Session2
Postmortem Debugger Settings1
WinDbg Setup2
Dump File creation using Tools3
Dump File creation using Win32 API4
Dump File Analyzing case study5
62. Page 62 2013
By K.S.Shanmuga sundaram
Dump File Creation
Using Win32 API
Refer Sample MFC_1
63. Page 63 2013
By K.S.Shanmuga sundaram
Agenda – Session2
Postmortem Debugger Settings1
WinDbg Setup2
Dump File creation using Tools3
Dump File creation using Win32 API4
Dump File Analyzing case study5
64. Page 64 2013
By K.S.Shanmuga sundaram
Case Study - 1
Exception type Access violation exception
Sample code 1 – Refer Sample MFC_1
int* i = NULL;
*i = 100;
Sample code 2
Printf(“%s%s%s%s%s%s%s%s%s%s”);
65. Page 65 2013
By K.S.Shanmuga sundaram
Case Study - 2
Exception type Stack Overflow
Sample code 1 – Refer Sample MFC_1
Void TestMethod()
{
unsigned char Temp[1024*1024*1024];
}
Sample code 2
Void TestMethod()
{
TestMethod();
}
66. Page 66 2013
By K.S.Shanmuga sundaram
Case Study - 3
Exception type Divide by Zero
Sample code 1 - Refer Sample MFC_1
Void TestMethod()
{
int nTemp = 100;
nTemp = nTemp / (nTemp - nTemp )
}
67. Page 67 2013
By K.S.Shanmuga sundaram
Case Study - 4
Exception type High CPU usage
Sample code 1 – Refer Sample MFC_2
UINT ThreadProc1(LPVOID pParam_in)
{
while(1); eturn 1;
}
UINT ThreadProc2(LPVOID pParam_in)
{
for(long i=0;i<200000;i++); return 1;
}
UINT ThreadProc3(LPVOID pParam_in)
{
for(long i=0;i<900000;i++); return 1;
}
69. Page 69 2013
By K.S.Shanmuga sundaram
References
"Microsoft Windows
Internals” by Mark
Russinovich and David
Solomon 5th Edition
"Advanced Windows
Debugging" by Mario
Hewardt and Daniel
Pravat
“Memory Dump
Analysis Anthology“
by Dmitry Vostokov
70. Page 70 2013
By K.S.Shanmuga sundaram
Any Questions?
Session - 2
71. Page 71 2013
By K.S.Shanmuga sundaram
Questions?
For more details, please contact
http://www.linkedin.com/in/shanmugasundaramks
sundarammails@gmail.com
K.S.Shanmuga sundaram
Software Architect,
Bangalore, India