SlideShare a Scribd company logo
1 of 43
Download to read offline
molecular-matters.com
Game Connection 2012Game Connection 2012
Debugging memory stomps and
other atrocities
molecular-matters.com
MotivationMotivation
● People make mistakes
● In relation to memory allocations, mistakes
can be fatal
molecular-matters.com
Common mistakesCommon mistakes
● Forgetting to initialize class members
– Code then relies on garbage or stale values
● Writing out-of-bounds
● Reading out-of-bounds
● Memory leaks
molecular-matters.com
Common mistakes (cont'd)Common mistakes (cont'd)
● Stack overflows
– Seldom in main thread
– More often in other threads
● Memory overwrites
– Off-by-one
– Wrong casting
– Reference & pointer to temporary
– Dangling pointers
molecular-matters.com
Possible outcomesPossible outcomes
● From best to worst
– Compile error, warning
– Analysis tool error, warning
– Assertion
– Consistent crash or corruption
– Random, unpredictable crash
– Crashes after N hours of gameplay
– Seemingly works, crashes at certification
molecular-matters.com
Class member initializationClass member initialization
● Non-initialized members get garbage
– Whatever the memory content is
● Lucky case
– Leads to a crash later
● Unlucky case
– Works, but not as intended
– Subtle bugs N frames later
molecular-matters.com
Class member initialization (cont'd)Class member initialization (cont'd)
● Extra painful with pool allocators
– Most recently freed entry is re-used
– Members point to stale data
● Remedy
– Crank up compiler warning level
– Fill memory with distinct pattern when allocating
– Fill memory with distinct pattern when freeing
– Use static code analysis tools
molecular-matters.com
Fill patternsFill patterns
● If you can, do not fill with zero
– Hides bugs and uninitialized pointer members
● E.g. delete 0 still works, but pointer was never initialized
– Often not possible when dealing with legacy code
● Fill with „uncommon“ values
– Numerically odd
– Unused address range
– E.g. 0xCD, 0xFD, 0xAB
molecular-matters.com
Writing out-of-boundsWriting out-of-bounds
● Could stomp unrelated data
● Could stomp allocator book-keeping data
● Could write to non-committed memory
● Lucky case
– Immediate crash
● Unlucky case
– Weird behaviour N frames later
molecular-matters.com
Writing out-of-bounds (cont'd)Writing out-of-bounds (cont'd)
● Remedy
– Bounds checking
● Insert guard bytes at the front and back of each
allocation
– Use static code analysis tools
– Use page access protection
molecular-matters.com
Reading out-of-boundsReading out-of-bounds
● Reads garbage data
● Garbage could lead to crash later
● Read operation itself could also crash
– Very rare, reading from protected page
● Worst case
– Goes unnoticed for months
– Seldomly crashes
molecular-matters.com
Reading out-of-bounds (cont'd)Reading out-of-bounds (cont'd)
● Remedy
– Bounds checking, somewhat insufficient
● At least the garbage read is always the same
– Use static code analysis tools
– Use page access protection
molecular-matters.com
Memory leaksMemory leaks
● Lead to out-of-memory conditions after hours
of playing the game
● Can go unnoticed for weeks
● Different kinds of leaks
– „User-code“ leaks
– API leaks
– System memory leaks
– Logical leaks
molecular-matters.com
Memory leaks (cont'd)Memory leaks (cont'd)
● Remedy
– Memory tracking
● Override global new & delete
– Or build DIY functions
● Hook low-level functions
– Disassemble & patch (PC)
– Weak functions (consoles)
– Compiler-specific wrapping (consoles)
– Linker-specific wrapping (--wrap, GCC)
– Soak tests
molecular-matters.com
Stack overflowsStack overflows
● An overflow can stomp single bytes, not just
big blocks
– Thread stack memory comes from heap
– Stomps completely unrelated data
● Often lead to immediate crash upon writing
– E.g. in function prologue
molecular-matters.com
Stack overflows (cont'd)Stack overflows (cont'd)
● Debugging help
– Find stack start & end
● Highly platform-specific
● Linker-defined symbols for executable
– Fill stack with pattern
– Check for pattern at start & end
● Each frame
● In offending functions
molecular-matters.com
Stack overflows (cont'd)Stack overflows (cont'd)
molecular-matters.com
Memory overwritesMemory overwrites
● Off-by-one
– Write past the end of an array
– 0-based vs. 1-based
● Debugging tools
– Bounds checking
● Finds those cases rather quick
– Static code analysis tools
molecular-matters.com
Memory overwrites (cont'd)Memory overwrites (cont'd)
● Wrong casting
– Multiple inheritance
– Implicit conversions to void*
● No offsets added
– reinterpret_cast
● No offsets added
– static_cast & dynamic_cast
● Correct offsets
molecular-matters.com
Memory overwrites (cont'd)Memory overwrites (cont'd)
● Reference & pointer to temporary
– Most compilers will warn
● Crank up the warning level
– Compilers are tricked easily
– Reference vs. const reference
● Reference to temp. = illegal
● Const ref. to temp. = legal
molecular-matters.com
Memory overwrites (cont'd)Memory overwrites (cont'd)
● Dangling pointers
– Point to already freed allocation
– Lucky case
● Memory page has been decommited
– Immediate crash upon access
– Unlucky case
● Other allocation sits at the same address
molecular-matters.com
Debugging optimized buildsDebugging optimized builds
● Debug builds
– printf(), assert(), etc. slow down the application
● Hides data races
● Crashes in optimized builds
– Local variables mostly gone
● Not on stack, but in registers (PowerPC!)
– Memory window is your friend
● Never lies!
molecular-matters.com
Debugging optimized builds (cont‘d)Debugging optimized builds (cont‘d)
● Knowing stack frame layout helps
– Parameter passing
– Dedicated vs. volatile vs. non-volatile registers
● Knowing assembly helps
● Knowing class layout helps
– V-table pointer, padding, alignment, …
● Verify your assumptions!
molecular-matters.com
Debugging optimized builds (cont‘d)Debugging optimized builds (cont‘d)
● Familiarize yourself with
– Function prologue
– Function epilogue
– Function calls
– Virtual function calls
– Different address ranges
● Heap, stack, code, write-combined, …
● Study compiler-generated code
molecular-matters.com
Debugging optimized builds (cont‘d)Debugging optimized builds (cont‘d)
● Help from the debugger
– Cast any address to pointer-type in watch window
– Cast zero into any instance
● Work out member offsets
– Pseudo variables
● @eax, @r1, @err, platform-specific ones
– Going back in time
● „Set next instruction“
molecular-matters.com
Debugging optimized builds (cont‘d)Debugging optimized builds (cont‘d)
molecular-matters.com
Debugging optimized builds (cont‘d)Debugging optimized builds (cont‘d)
● Help from the debugger (cont'd)
– Crash dumps
● Registers
– Work backwards from point of crash
– Find offsets using debugger
– Find this-pointer (+offset) in register, cast in debugger
● Memory contents
– On-the-fly coding
● Nop'ing out instructions
● Changing branches
molecular-matters.com
Debugging optimized builds (cont‘d)Debugging optimized builds (cont‘d)
molecular-matters.com
Debugging overwritesDebugging overwrites
● Hardware breakpoints
– Supported by debuggers
– Supported by all major platforms
● x86: Debug registers (DR0-DR7)
● PowerPC: Data Access Breakpoint Register (DABR)
– Help finding reads & writes
– Setting from code helps finding random stomps
– CPU only
● GPU/SPU/DMA/IO access doesn't trigger
molecular-matters.com
Debugging overwrites (cont‘d)Debugging overwrites (cont‘d)
● Page protection
– Move allocations in question to the start or end of
a page
● Restrict access to surrounding pages
● Needs a lot more memory
– Protect free pages
● Walk allocations upon freeing memory
● Don't re-use recently freed allocations
molecular-matters.com
Debugging overwrites (cont'd)Debugging overwrites (cont'd)
● Page protection (cont'd)
– Needs virtual memory system
– If not available, most platforms offer similar
features
molecular-matters.com
If all else fails...If all else fails...
● Go home, get some sleep
– Let your brain do the work
● Grab a colleague
– Pair debugging
– Fresh pair of eyes
● Talk to somebody
– Non-programmers, other team members
– Your family, rubber ducks, ...
molecular-matters.com
Yes, rubber ducks!Yes, rubber ducks!
molecular-matters.com
Yes, rubber ducks!Yes, rubber ducks!
molecular-matters.com
That's it!That's it!
Questions?
Contact:
stefan.reinalter@molecular-
matters.com
molecular-matters.com
Bonus slidesBonus slides
Memory tracking
molecular-matters.com
Memory trackingMemory tracking
● Two possibilities
– Allocate & free memory with new & delete only
● Override global new and delete operators
● Static initialization order fiasco
– Memory tracker must be instantiated first
– Platform-specific tricks needed
● Still need to hook other functions
– malloc & free
– Weak functions or linker function wrapping
● Problems with 3rd party libraries doing the same
molecular-matters.com
Memory tracking (cont'd)Memory tracking (cont'd)
● Static initialization order
– Top to bottom in a translation unit
– Undefined across translation units
– Platform-specific tricks
● #pragma init_seg(compiler/lib/user) (MSVC)
● __attribute__ ((init_priority (101))) (GCC)
● Custom code/linker sections
molecular-matters.com
Memory tracking (cont'd)Memory tracking (cont'd)
● Other possibility
– Disallow new & delete completely
● Use custom functions instead
– Allows more fine-grained tracking in allocators
● Demand explicit startup & shutdown
● Harder to do with legacy codebase
– Need to hook platform-specific functions
● Easier on consoles
● Code-patching on PC
molecular-matters.com
Memory tracking (cont'd)Memory tracking (cont'd)
● Hooking functions
– Weak functions (if supported)
– Implemented at compiler-level
● XMemAlloc (Xbox360)
– Function wrapping at linker-level
● --wrap (GCC)
– __wrap_* & __real_*
– Code-patching (Windows)
● Disassemble & patch at run-time
molecular-matters.com
Memory tracking (cont'd)Memory tracking (cont'd)
● Storing allocations
– Intrusive
● In-place linked list
● Changes memory layout
● Cannot use debug memory on consoles
– External
● Associative container, e.g. hash map
● Same memory layout as with tracking disabled
● Can use debug memory on consoles
molecular-matters.com
Memory tracking (cont'd)Memory tracking (cont'd)
● Levels of sophistication
– Simple counter
– File & line & function, size
– Full callstack, ID, allocator name, size, …
● Tracking granularity
– Global, e.g. #ifdef/#endif
– Per allocator
● More on that later
molecular-matters.com
Memory tracking (cont'd)Memory tracking (cont'd)
● Finding logical leaks
– Snapshot functionality
● Capture all live allocations
– Compare snapshots e.g. upon level start
– Report snapshot differences

More Related Content

Similar to Session - Debugging memory stomps and other atrocities - Stefan Reinalter - Technology

Advanced Linux Game Programming
Advanced Linux Game ProgrammingAdvanced Linux Game Programming
Advanced Linux Game ProgrammingLeszek Godlewski
 
Chelberg ptcuser 2010
Chelberg ptcuser 2010Chelberg ptcuser 2010
Chelberg ptcuser 2010Clay Helberg
 
Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...Danny Mulligan
 
strangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patternsstrangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patternsMatthew Dennis
 
One Year of Porting - Post-mortem of two Linux/SteamOS launches
One Year of Porting - Post-mortem of two Linux/SteamOS launchesOne Year of Porting - Post-mortem of two Linux/SteamOS launches
One Year of Porting - Post-mortem of two Linux/SteamOS launchesLeszek Godlewski
 
Benchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbersBenchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbersJustin Dorfman
 
Benchmarks, performance, scalability, and capacity what s behind the numbers...
Benchmarks, performance, scalability, and capacity  what s behind the numbers...Benchmarks, performance, scalability, and capacity  what s behind the numbers...
Benchmarks, performance, scalability, and capacity what s behind the numbers...james tong
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Peter Hlavaty
 
The Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidThe Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidStanojko Markovik
 
Code quality; patch quality
Code quality; patch qualityCode quality; patch quality
Code quality; patch qualitydn
 
Performance optimization techniques for Java code
Performance optimization techniques for Java codePerformance optimization techniques for Java code
Performance optimization techniques for Java codeAttila Balazs
 
Half-automatic Compilable Source Code Recovery
Half-automatic Compilable Source Code RecoveryHalf-automatic Compilable Source Code Recovery
Half-automatic Compilable Source Code RecoveryJoxean Koret
 

Similar to Session - Debugging memory stomps and other atrocities - Stefan Reinalter - Technology (20)

Coding standard
Coding standardCoding standard
Coding standard
 
Unsafe Java
Unsafe JavaUnsafe Java
Unsafe Java
 
Advanced Linux Game Programming
Advanced Linux Game ProgrammingAdvanced Linux Game Programming
Advanced Linux Game Programming
 
Chelberg ptcuser 2010
Chelberg ptcuser 2010Chelberg ptcuser 2010
Chelberg ptcuser 2010
 
Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...
 
strangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patternsstrangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patterns
 
One Year of Porting - Post-mortem of two Linux/SteamOS launches
One Year of Porting - Post-mortem of two Linux/SteamOS launchesOne Year of Porting - Post-mortem of two Linux/SteamOS launches
One Year of Porting - Post-mortem of two Linux/SteamOS launches
 
Cloud accounting software uk
Cloud accounting software ukCloud accounting software uk
Cloud accounting software uk
 
Dconf2015 d2 t4
Dconf2015 d2 t4Dconf2015 d2 t4
Dconf2015 d2 t4
 
Benchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbersBenchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbers
 
Benchmarks, performance, scalability, and capacity what s behind the numbers...
Benchmarks, performance, scalability, and capacity  what s behind the numbers...Benchmarks, performance, scalability, and capacity  what s behind the numbers...
Benchmarks, performance, scalability, and capacity what s behind the numbers...
 
Killer Bugs From Outer Space
Killer Bugs From Outer SpaceKiller Bugs From Outer Space
Killer Bugs From Outer Space
 
Caveats
CaveatsCaveats
Caveats
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!
 
The Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidThe Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with android
 
Code quality; patch quality
Code quality; patch qualityCode quality; patch quality
Code quality; patch quality
 
Introduction to Parallelization and performance optimization
Introduction to Parallelization and performance optimizationIntroduction to Parallelization and performance optimization
Introduction to Parallelization and performance optimization
 
Performance optimization techniques for Java code
Performance optimization techniques for Java codePerformance optimization techniques for Java code
Performance optimization techniques for Java code
 
Introduction to Parallelization ans performance optimization
Introduction to Parallelization ans performance optimizationIntroduction to Parallelization ans performance optimization
Introduction to Parallelization ans performance optimization
 
Half-automatic Compilable Source Code Recovery
Half-automatic Compilable Source Code RecoveryHalf-automatic Compilable Source Code Recovery
Half-automatic Compilable Source Code Recovery
 

More from Mary Chan

Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...Mary Chan
 
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014Mary Chan
 
Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014Mary Chan
 
Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014Mary Chan
 
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...Mary Chan
 
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014Mary Chan
 
Moving to virtual reality chet faliszek
Moving to virtual reality    chet faliszekMoving to virtual reality    chet faliszek
Moving to virtual reality chet faliszekMary Chan
 
Engage and keep your community alive best practises and keys to success - s...
Engage and keep your community alive   best practises and keys to success - s...Engage and keep your community alive   best practises and keys to success - s...
Engage and keep your community alive best practises and keys to success - s...Mary Chan
 
Go big or go home jillian mood
Go big or go home   jillian moodGo big or go home   jillian mood
Go big or go home jillian moodMary Chan
 
The toolbox approach to f2 p design nicholas lovell
The toolbox approach to f2 p design   nicholas lovellThe toolbox approach to f2 p design   nicholas lovell
The toolbox approach to f2 p design nicholas lovellMary Chan
 
Session rahim attaba - wargaming europe sas
Session   rahim attaba - wargaming europe sasSession   rahim attaba - wargaming europe sas
Session rahim attaba - wargaming europe sasMary Chan
 
Connect to the consumer john clark
Connect to the consumer   john clarkConnect to the consumer   john clark
Connect to the consumer john clarkMary Chan
 
Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...Mary Chan
 
What interior design teaches us about environment art dan cox
What interior design teaches us about environment art   dan coxWhat interior design teaches us about environment art   dan cox
What interior design teaches us about environment art dan coxMary Chan
 
Staying competitive when your brand new thing becomes the same old thing s...
Staying competitive when your brand new thing becomes the same old thing   s...Staying competitive when your brand new thing becomes the same old thing   s...
Staying competitive when your brand new thing becomes the same old thing s...Mary Chan
 
Lessons from the community building an open development dna jeff spock
Lessons from the community building an open development dna   jeff spockLessons from the community building an open development dna   jeff spock
Lessons from the community building an open development dna jeff spockMary Chan
 
Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...Mary Chan
 
Playing with chance good luck marc pestka
Playing with chance good luck   marc pestkaPlaying with chance good luck   marc pestka
Playing with chance good luck marc pestkaMary Chan
 
Mixing for games levels and more... jocelyn daoust
Mixing for games levels and more...   jocelyn daoustMixing for games levels and more...   jocelyn daoust
Mixing for games levels and more... jocelyn daoustMary Chan
 
The future of game ai stephane bura
The future of game ai   stephane buraThe future of game ai   stephane bura
The future of game ai stephane buraMary Chan
 

More from Mary Chan (20)

Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
 
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
 
Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014
 
Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014
 
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
 
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
 
Moving to virtual reality chet faliszek
Moving to virtual reality    chet faliszekMoving to virtual reality    chet faliszek
Moving to virtual reality chet faliszek
 
Engage and keep your community alive best practises and keys to success - s...
Engage and keep your community alive   best practises and keys to success - s...Engage and keep your community alive   best practises and keys to success - s...
Engage and keep your community alive best practises and keys to success - s...
 
Go big or go home jillian mood
Go big or go home   jillian moodGo big or go home   jillian mood
Go big or go home jillian mood
 
The toolbox approach to f2 p design nicholas lovell
The toolbox approach to f2 p design   nicholas lovellThe toolbox approach to f2 p design   nicholas lovell
The toolbox approach to f2 p design nicholas lovell
 
Session rahim attaba - wargaming europe sas
Session   rahim attaba - wargaming europe sasSession   rahim attaba - wargaming europe sas
Session rahim attaba - wargaming europe sas
 
Connect to the consumer john clark
Connect to the consumer   john clarkConnect to the consumer   john clark
Connect to the consumer john clark
 
Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...
 
What interior design teaches us about environment art dan cox
What interior design teaches us about environment art   dan coxWhat interior design teaches us about environment art   dan cox
What interior design teaches us about environment art dan cox
 
Staying competitive when your brand new thing becomes the same old thing s...
Staying competitive when your brand new thing becomes the same old thing   s...Staying competitive when your brand new thing becomes the same old thing   s...
Staying competitive when your brand new thing becomes the same old thing s...
 
Lessons from the community building an open development dna jeff spock
Lessons from the community building an open development dna   jeff spockLessons from the community building an open development dna   jeff spock
Lessons from the community building an open development dna jeff spock
 
Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...
 
Playing with chance good luck marc pestka
Playing with chance good luck   marc pestkaPlaying with chance good luck   marc pestka
Playing with chance good luck marc pestka
 
Mixing for games levels and more... jocelyn daoust
Mixing for games levels and more...   jocelyn daoustMixing for games levels and more...   jocelyn daoust
Mixing for games levels and more... jocelyn daoust
 
The future of game ai stephane bura
The future of game ai   stephane buraThe future of game ai   stephane bura
The future of game ai stephane bura
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 

Session - Debugging memory stomps and other atrocities - Stefan Reinalter - Technology