Debugging & Profiling with Open Source SW Tools
|
|
|
- Blaise Bishop
- 10 years ago
- Views:
Transcription
1 Debugging & Profiling with Open Source SW Tools Ivan Giro*o Informa(on & Communica(on Technology Sec(on (ICTS) Interna(onal Centre for Theore(cal Physics (ICTP)
2 What is Debugging?! Iden(fying the cause of an error and correc(ng it Once you have iden(fied defects, you need to: find and understand the cause remove the defect from your code In a large number of cases bug fixes are wrong: they remove the symptom, but not the cause Improve produc(vity by geing it right the first (me A lot of programmers don't know how to debug! Doesn't add func(onality & doesn't improve the science Debugging needs prac(ce and experience: understand the science and the tools 2
3 Lot of (me debugging. We did learn also from it, but I have the feeling we could have learnt more things about Quantum Espresso if we hadn't had to be debugging for so long (some of the bugs we had were due to our lack of excellence in programming skills and were not specific to QE issues) (Cit. from ICTP Ac(vity evalua(on) 3
4 Errors are Opportuni(es Learn from the program you're working on: Errors mean you didn't understand the program. If you knew it bener, it wouldn't have an error. You would have fixed it already Learn about the kinds of mistakes you make: If you wrote the program, you inserted the error Once you find a mistake, ask yourself: Why did you make it? How could you have found it more quickly? How could you have prevented it? Are there other similar mistakes in the code? 4
5 The Nature of Bugs Straigh\orward bug to intercept and solve The program crashes unexpectedly the problem can be easily reproduced (lucky) bug whose causes are too complex to be reliably reproduced; it thus defies repair bug disappears when debugging a problem (compiling with - g or adding prints) The produced numbers differ from what we expected bug generated by an invalid opera(ons bug disappears when debugging a problem (compiling with - g or adding prints) 5
6 Main Reasons of Debugging Floa(ng Point Excep(ons (FPE) Overflow Invalid Number Division by Zero Out of bound Segmenta(on Fault Not expected execu(on flow The Program Hangs 6
7 Purpose of a Debugger More informa(on than print statements Allows to stop/start/single step execu(on Look at data and modify it 'Post mortem' analysis from core dumps Prove / disprove hypotheses No subs(tute for good thinking But, some(mes good thinking is not a subs(tute for effec(vely using a debugger! Easier to use with modular code 7
8 Approaches Print Messages and Variables J Compiler Debug Op(ons Core analysis Run the Program with a Debugger ANach Debugger to a running process Ask for help! 8
9 Using a Debugger When compiling use - g op(on to include debug info in object (.o) and executable (and possibly - O0) 1:1 mapping of execu(on and source code only when op(miza(on is turned off problem when op(miza(on uncovers bug GNU compilers allow - g with op(miza(on not always correct line numbers variables/code can be 'op(mized away progress confusing with loop unrolling 9
10 Using gdb as a Debugger gdb ex01- c launches debugger, loads binary, stops with (gdb) prompt wai(ng for input: run starts executable, arguments are passed Running program can be interrupted (ctrl- c) gdb./prog - - args arg1 - flag passes all arguments to the run command inside gdb conjnue con(nues stopped program finish con(nues un(l the end of a subrou(ne step single steps through program line by line next single steps but doesn't step into subrou(nes 10
11 More Basic gdb Commands print displays contents of a known data object display is like print but shows updates every step where shows stack trace (of func(on calls) up/down allows to move up/down on the stack break sets break point (uncondi(onal stop), loca(on indicated by file name+line no. or func(on watch sets a condi(onal break point (breaks when an expression changes, e.g. a variable) delete removes display or break points 11
12 Post Mortem Analysis Enable core dumps: ulimit - c unlimited Run executable un(l it crashes; will generate a file core or core.<pid> with memory image Load executable and core dump into debugger gdb myexe core.<pid> Inspect loca(on of crash through commands: where, up, down, list Use directory to point to loca(on of sources 12
13 Using valgrind Run valgrind - v./exe to instrument and run - - leak- check=full - - track- origins=yes Output will list individual errors and summary With debug info present can resolve problems to line of code, otherwise to name of func(on Also monitors memory alloca(on / dealloca(on to flag memory leaks ( forgonen alloca(ons) Instrumenta(on slows down execu(on Can produce false posi(ves (flag non- errors) 13
14 How to NOT do Debugging Find the error by guessing Change things randomly un(l it works (again) Don't keep track of what you changed Don't make a backup of the original Fix the error with the most obvious fix If wrong code gives the correct result, and changing it doesn't work, don't correct it. If the error is gone, the problem is solved. Trying to understand the problem, is a waste of (me 14
15 Debugging Tools Source code comparison and management tools: diff, vimdiff, emacs/ediff, cvs/svn/git Help you to find differences, origins of changes Source code analysis tools: compiler warnings, wnchek, lint Help you to find problema(c code Always enable warnings when programming Always take warnings seriously (but not all) Always compile/test on mul(ple pla\orms Bounds checking allows checking of (sta(c) memory alloca(on viola(ons (no malloc) 15
16 More Debugging Tools Using different compilers (Intel, GCC, Clang,...) Debuggers and debugger frontends: gdb (GNU compilers), idb (Intel compilers), ddd (GUI), eclipse (IDE), and many more... gprof (profiler) as it can generate call graphs valgrind, an instrumenta(on framework Memcheck: detects memory management problems Cachegrind: cache profiler, detects cache misses Callgrind: call graph crea(on tool 16
17 How to Report a Bug(?) to Others Research whether bug is known/fixed web search, mailing list archive, bugzilla Provide descrip(on on how to reproduce the problem. Find a minimal input to show bug. Always state hardware/sowware you are using (distribu(on, compilers, code version) Demonstrate, that you have invested effort Make it easy for others to help you! 17
18 Profiling Essen(al opera(on for code op(miza(on Profiling usually means: Instrumenta(on of code (e.g. during compila(on) Automated collec(on of (ming data during execu(on Analysis of collected data, breakdown by func(on Example: gcc - o some_exe.x - pg some_code.c./some_exe.x gprof some_exe.x gmon.out Profiling is owen incompa(ble with code op(miza(on or can be misleading (inlining) 18
19 19
20 PERF Hardware Assisted Profiling Modern x86 CPUs contain performance monitor tools included in their hardware Linux kernel versions support this feature which allows for very low overhead profiling without instrumenta(on of binaries perf stat./a.out - > profile summary perf record./a.out; perf report - i perf.data gprof like func(on level profiling (with coverage report and disassembly, if debug info present) 20
21 21
22 Func(on for Internal Profiling #include <time.h> #include <ctype.h> #include <sys/types.h> #include <sys/time.h> double seconds() /* Returns elepsed seconds past from the last call to timer rest */ { } struct timeval tmp; double sec; gettimeofday( &tmp, (struct timezone *)0 ); sec = tmp.tv_sec + ((double)tmp.tv_usec)/ ; return sec; 22
23 Ivan GiroNo Debugging & Profiling with Open Source SW Tools 23
24 Profiling in Python individual func(ons: import cprofile cprofile.run('some_func()', 'profile.tmp') whole script: python - m cprofile [- o output_file] [- s sort_order] myscript.py Analyze profile file: import pstats p = pstats.stats('profile.tmp') p.strip_dirs().sort_stats(- 1).print_stats() More info at hnp://docs.python.org/2/library/profile.html 24
25 Debugging Python typically very easy to do interac(vely with "print()" and "exit()" statements in the code More featureful debugger available in module "pdb", see: hnp://docs.python.org/2.7/library/pdb.html 25
26 References PERF wiki 26
Understanding and Detec.ng Real- World Performance Bugs
Understanding and Detec.ng Real- World Performance Bugs Gouliang Jin, Linhai Song, Xiaoming Shi, Joel Scherpelz, and Shan Lu Presented by Cindy Rubio- González Feb 10 th, 2015 Mo.va.on Performance bugs
Testing for Security
Testing for Security Kenneth Ingham September 29, 2009 1 Course overview The threat that security breaches present to your products and ultimately your customer base can be significant. This course is
Monitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
Get the Better of Memory Leaks with Valgrind Whitepaper
WHITE PAPER Get the Better of Memory Leaks with Valgrind Whitepaper Memory leaks can cause problems and bugs in software which can be hard to detect. In this article we will discuss techniques and tools
GDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
Debugging with TotalView
Tim Cramer 17.03.2015 IT Center der RWTH Aachen University Why to use a Debugger? If your program goes haywire, you may... ( wand (... buy a magic... read the source code again and again and...... enrich
Protec'ng Informa'on Assets - Week 8 - Business Continuity and Disaster Recovery Planning. MIS 5206 Protec/ng Informa/on Assets Greg Senko
Protec'ng Informa'on Assets - Week 8 - Business Continuity and Disaster Recovery Planning MIS5206 Week 8 In the News Readings In Class Case Study BCP/DRP Test Taking Tip Quiz In the News Discuss items
Valgrind BoF Ideas, new features and directions
Valgrind BoF Ideas, new features and directions Everybody! Valgrind developers and users are encouraged to participate by joining the discussion. And of course by kindly (or bitterly:) complain about bugs
Oracle Solaris Studio Code Analyzer
Oracle Solaris Studio Code Analyzer The Oracle Solaris Studio Code Analyzer ensures application reliability and security by detecting application vulnerabilities, including memory leaks and memory access
Overview on Modern Accelerators and Programming Paradigms Ivan Giro7o [email protected]
Overview on Modern Accelerators and Programming Paradigms Ivan Giro7o [email protected] Informa(on & Communica(on Technology Sec(on (ICTS) Interna(onal Centre for Theore(cal Physics (ICTP) Mul(ple Socket
System/Networking performance analytics with perf. Hannes Frederic Sowa <[email protected]>
System/Networking performance analytics with perf Hannes Frederic Sowa Prerequisites Recent Linux Kernel CONFIG_PERF_* CONFIG_DEBUG_INFO Fedora: debuginfo-install kernel for
Introducing the IBM Software Development Kit for PowerLinux
Introducing the IBM Software Development Kit for PowerLinux Wainer S. Moschetta IBM, PowerLinux SDK Team Leader [email protected] 1 2009 IBM Acknowledgments The information in this presentation was created
Leak Check Version 2.1 for Linux TM
Leak Check Version 2.1 for Linux TM User s Guide Including Leak Analyzer For x86 Servers Document Number DLC20-L-021-1 Copyright 2003-2009 Dynamic Memory Solutions LLC www.dynamic-memory.com Notices Information
Real-time Debugging using GDB Tracepoints and other Eclipse features
Real-time Debugging using GDB Tracepoints and other Eclipse features GCC Summit 2010 2010-010-26 [email protected] Summary Introduction Advanced debugging features Non-stop multi-threaded debugging
Building Embedded Systems
All Rights Reserved. The contents of this document cannot be reproduced without prior permission of the authors. Building Embedded Systems Chapter 5: Maintenance and Debugging Andreas Knirsch [email protected]
Peach Fuzzer Platform
Fuzzing is a software testing technique that introduces invalid, malformed, or random data to parts of a computer system, such as files, network packets, environment variables, or memory. How the tested
Offensive & Defensive & Forensic Techniques for Determining Web User Iden<ty
Offensive & Defensive & Forensic Techniques for Determining Web User Iden
Security Testing OpenGGSN: a Case Study
Security Testing OpenGGSN: a Case Study Esa Tikkala, Mikko Rapeli, Kaarina Karppinen, Hannu Honkanen VTT Technical Research Centre of Finland, Oulu, Finland Abstract As systems today are more and more
Effec%ve AX 2012 Upgrade Project Planning and Microso< Sure Step. Arbela Technologies
Effec%ve AX 2012 Upgrade Project Planning and Microso< Sure Step Arbela Technologies Why Upgrade? What to do? How to do it? Tools and templates Agenda Sure Step 2012 Ax2012 Upgrade specific steps Checklist
id_prob_result_coredump_aix.ppt Page 1 of 15
IBM Tivoli Monitoring V6.1, Identifying problems that result in a core dump on AIX. In this module, you learn about the steps to identify when a monitoring application is stopping on AIX and how to gather
Kaseya Fundamentals Workshop DAY THREE. Developed by Kaseya University. Powered by IT Scholars
Kaseya Fundamentals Workshop DAY THREE Developed by Kaseya University Powered by IT Scholars Kaseya Version 6.5 Last updated March, 2014 Day Two Overview Day Two Lab Review Patch Management Configura;on
CSE/ISE 311: Systems Administra5on Logging
Logging Por$ons courtesy Ellen Liu Outline Introduc$on Finding log files Syslog: the system event logger Linux logrotate tool Condensing log files to useful informa$on Logging policies 13-2 Who and Why
Software Development Tools for Embedded Systems. Hesen Zhang
Software Development Tools for Embedded Systems Hesen Zhang What Are Tools? a handy tool makes a handy man What Are Software Development Tools? Outline Debug tools GDB practice Debug Agent Design Debugging
OS/Run'me and Execu'on Time Produc'vity
OS/Run'me and Execu'on Time Produc'vity Ron Brightwell, Technical Manager Scalable System SoAware Department Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation,
High Performance Computing Facility Specifications, Policies and Usage. Supercomputer Project. Bibliotheca Alexandrina
High Performance Computing Facility Specifications, Policies and Usage Supercomputer Project Bibliotheca Alexandrina Bibliotheca Alexandrina 1/16 Topics Specifications Overview Site Policies Intel Compilers
Mission. To provide higher technological educa5on with quality, preparing. competent professionals, with sound founda5ons in science, technology
Mission To provide higher technological educa5on with quality, preparing competent professionals, with sound founda5ons in science, technology and innova5on, commi
Nodes, Ties and Influence
Nodes, Ties and Influence Chapter 2 Chapter 2, Community Detec:on and Mining in Social Media. Lei Tang and Huan Liu, Morgan & Claypool, September, 2010. 1 IMPORTANCE OF NODES 2 Importance of Nodes Not
Suppor&ng the Design of Safety Cri&cal Systems Using AADL
Suppor&ng the Design of Safety Cri&cal Systems Using AADL T. Correa, L. B. Becker, J.- M. Farines, J.- P. Bodeveix, M. Filali, F. Vernadat IRIT LAAS UFSC Agenda Introduc&on Proposed Approach Verifica&on
This presentation explains how to monitor memory consumption of DataStage processes during run time.
This presentation explains how to monitor memory consumption of DataStage processes during run time. Page 1 of 9 The objectives of this presentation are to explain why and when it is useful to monitor
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Eliminate Memory Errors and Improve Program Stability
Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent
Perf Tool: Performance Analysis Tool for Linux
/ Notes on Linux perf tool Intended audience: Those who would like to learn more about Linux perf performance analysis and profiling tool. Used: CPE 631 Advanced Computer Systems and Architectures CPE
Protec'ng Communica'on Networks, Devices, and their Users: Technology and Psychology
Protec'ng Communica'on Networks, Devices, and their Users: Technology and Psychology Alexey Kirichenko, F- Secure Corpora7on ICT SHOK, Future Internet program 30.5.2012 Outline 1. Security WP (WP6) overview
Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005
Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005... 1
Bug hunting. Vulnerability finding methods in Windows 32 environments compared. FX of Phenoelit
Bug hunting Vulnerability finding methods in Windows 32 environments compared FX of Phenoelit The goal: 0day What we are looking for: Handles network side input Runs on a remote system Is complex enough
Software Development Processes For Embedded Development A checklist for efficient development using open-source tools
Software Development Processes For Embedded Development A checklist for efficient development using open-source tools Senior Embedded Software Architect Embedded evolution More processing power available
Introduction. Created by Richard Bell 10/29/2014
Introduction GNU Radio is open source software that provides built in modules for standard tasks of a wireless communications system. Within the GNU Radio framework is gnuradio-companion, which is a GUI
DTCC Data Quality Survey Industry Report
DTCC Data Quality Survey Industry Report November 2013 element 22 unlocking the power of your data Contents 1. Introduction 3 2. Approach and participants 4 3. Summary findings 5 4. Findings by topic 6
C Programming Review & Productivity Tools
Review & Productivity Tools Giovanni Agosta Piattaforme Software per la Rete Modulo 2 Outline Preliminaries 1 Preliminaries 2 Function Pointers Variadic Functions 3 Build Automation Code Versioning 4 Preliminaries
Winning the Battle against Automated Testing. Elena Laskavaia March 2016
Winning the Battle against Automated Testing Elena Laskavaia March 2016 Quality Foundation of Quality People Process Tools Development vs Testing Developers don t test Testers don t develop Testers don
Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney
Frysk The Systems Monitoring and Debugging Tool Andrew Cagney Agenda Two Use Cases Motivation Comparison with Existing Free Technologies The Frysk Architecture and GUI Command Line Utilities Current Status
Introduction to Java and Eclipse
Algorithms and Data-Structures Exercise Week 0 Outline 1 Introduction Motivation The Example 2 Setting things up Setting command line parameters in Eclipse 3 Debugging Understanding stack traces Breakpoints
Week 2 Practical Objects and Turtles
Week 2 Practical Objects and Turtles Aims and Objectives Your aim in this practical is: to practise the creation and use of objects in Java By the end of this practical you should be able to: create objects
1. Base Programming. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming»
1. Base Programming GIORGIO RUSSOLILLO Cours de prépara+on à la cer+fica+on SAS «Base Programming» 9 What is SAS Highly flexible and integrated soiware environment; you can use SAS for: GIORGIO RUSSOLILLO
Getting Started with CodeXL
AMD Developer Tools Team Advanced Micro Devices, Inc. Table of Contents Introduction... 2 Install CodeXL... 2 Validate CodeXL installation... 3 CodeXL help... 5 Run the Teapot Sample project... 5 Basic
Parallel Debugging with DDT
Parallel Debugging with DDT Nate Woody 3/10/2009 www.cac.cornell.edu 1 Debugging Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece
Parallel and Distributed Computing Programming Assignment 1
Parallel and Distributed Computing Programming Assignment 1 Due Monday, February 7 For programming assignment 1, you should write two C programs. One should provide an estimate of the performance of ping-pong
Red Hat Linux Internals
Red Hat Linux Internals Learn how the Linux kernel functions and start developing modules. Red Hat Linux internals teaches you all the fundamental requirements necessary to understand and start developing
Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS (mike@testandverification.
Achieving business benefits through automated software testing By Dr. Mike Bartley, Founder and CEO, TVS ([email protected]) 1 Introduction During my experience of test automation I have seen
Valgrind Documentation
Valgrind Documentation Release 3.10.0 10 September 2014 Copyright 2000-2014 AUTHORS Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Announcement. SOFT1902 Software Development Tools. Today s Lecture. Version Control. Multiple iterations. What is Version Control
SOFT1902 Software Development Tools Announcement SOFT1902 Quiz 1 in lecture NEXT WEEK School of Information Technologies 1 2 Today s Lecture Yes: we have evolved to the point of using tools Version Control
GPU Tools Sandra Wienke
Sandra Wienke Center for Computing and Communication, RWTH Aachen University MATSE HPC Battle 2012/13 Rechen- und Kommunikationszentrum (RZ) Agenda IDE Eclipse Debugging (CUDA) TotalView Profiling (CUDA
Development at the Speed and Scale of Google. Ashish Kumar Engineering Tools
Development at the Speed and Scale of Google Ashish Kumar Engineering Tools The Challenge Speed and Scale of Google More than 5000 developers in more than 40 offices More than 2000 projects under active
RTOS Debugger for ecos
RTOS Debugger for ecos TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debugger... RTOS Debugger for ecos... 1 Overview... 2 Brief Overview of Documents for New Users... 3
Introduction. Application Security. Reasons For Reverse Engineering. This lecture. Java Byte Code
Introduction Application Security Tom Chothia Computer Security, Lecture 16 Compiled code is really just data which can be edit and inspected. By examining low level code protections can be removed and
find model parameters, to validate models, and to develop inputs for models. c 1994 Raj Jain 7.1
Monitors Monitor: A tool used to observe the activities on a system. Usage: A system programmer may use a monitor to improve software performance. Find frequently used segments of the software. A systems
What is Assessment? Assessment is a process of collec3ng data for the purpose of making decisions about individuals and groups
Informal Assessment What is Assessment? Assessment is a process of collec3ng data for the purpose of making decisions about individuals and groups (Salvia & Ysseldyke, 2007) Conduc3ng Assessments Collect
Basic Unix/Linux 1. Software Testing Interview Prep
Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a
Java Debugging Ľuboš Koščo
Java Debugging Ľuboš Koščo Solaris RPE Prague Agenda Debugging - the core of solving problems with your application Methodologies and useful processes, best practices Introduction to debugging tools >
Bacula Open Source Project Bacula Systems (professional support)
Bacula Open Source Project Bacula Systems (professional support) The Enterprise Ready Open Source Network Backup Solu
OpenFOAM: Computational Fluid Dynamics. Gauss Siedel iteration : (L + D) * x new = b - U * x old
OpenFOAM: Computational Fluid Dynamics Gauss Siedel iteration : (L + D) * x new = b - U * x old What s unique about my tuning work The OpenFOAM (Open Field Operation and Manipulation) CFD Toolbox is a
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Introduc)on to. Eric Nagler 11/15/11
Introduc)on to Eric Nagler 11/15/11 What is Oozie? Oozie is a workflow scheduler for Hadoop Originally, designed at Yahoo! for their complex search engine workflows Now it is an open- source Apache incubator
#pragma omp critical x = x + 1; !$OMP CRITICAL X = X + 1!$OMP END CRITICAL. (Very inefficiant) example using critical instead of reduction:
omp critical The code inside a CRITICAL region is executed by only one thread at a time. The order is not specified. This means that if a thread is currently executing inside a CRITICAL region and another
CodeWarrior for Power Architecture 10.1.1 Errata
CodeWarrior for Power Architecture 10.1.1 Errata MTWX39813 MTWX46941 MTWX47555 MTWX48310 MTWX48571 Build Tools P4080 runtime does not support building ROM applications Getting incorrect results when optimizing
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Oak Ridge National Laboratory Computing and Computational Sciences Directorate. Lustre Crash Dumps And Log Files
Oak Ridge National Laboratory Computing and Computational Sciences Directorate Lustre Crash Dumps And Log Files Jesse Hanley Rick Mohr Sarp Oral Michael Brim Nathan Grodowitz Gregory Koenig Jason Hill
Attacking Obfuscated Code with IDA Pro. Chris Eagle
Attacking Obfuscated Code with IDA Pro Chris Eagle Outline Introduction Operation Demos Summary 2 First Order Of Business MOVE UP AND IN! There is plenty of room up front I can't increase the font size
Java Troubleshooting and Performance
Java Troubleshooting and Performance Margus Pala Java Fundamentals 08.12.2014 Agenda Debugger Thread dumps Memory dumps Crash dumps Tools/profilers Rules of (performance) optimization 1. Don't optimize
Legacy Archiving How many lights do you leave on? September 14 th, 2015
Legacy Archiving How many lights do you leave on? September 14 th, 2015 1 Introductions Wendy Laposata, Himforma(cs Tom Chase, Cone Health 2 About Cone Health More than 100 loca=ons 6 hospitals, 3 ambulatory
Using the Intel Inspector XE
Using the Dirk Schmidl [email protected] Rechen- und Kommunikationszentrum (RZ) Race Condition Data Race: the typical OpenMP programming error, when: two or more threads access the same memory
Red Hat Developer Toolset 1.1
Red Hat Developer Toolset 1.x 1.1 Release Notes 1 Red Hat Developer Toolset 1.1 1.1 Release Notes Release Notes for Red Hat Developer Toolset 1.1 Edition 1 Matt Newsome Red Hat, Inc [email protected]
Sequential Performance Analysis with Callgrind and KCachegrind
Sequential Performance Analysis with Callgrind and KCachegrind 2 nd Parallel Tools Workshop, HLRS, Stuttgart, July 7/8, 2008 Josef Weidendorfer Lehrstuhl für Rechnertechnik und Rechnerorganisation Institut
Chapter 9: Building Bigger Programs
Chapter 9: Building Bigger Programs How to Design Larger Programs Building something larger requires good software engineering. Design Top- down: Start from requirements, then identify the pieces to write,
Phone Systems Buyer s Guide
Phone Systems Buyer s Guide Contents How Cri(cal is Communica(on to Your Business? 3 Fundamental Issues 4 Phone Systems Basic Features 6 Features for Users with Advanced Needs 10 Key Ques(ons for All Buyers
Table of Contents. The RCS MINI HOWTO
Table of Contents The RCS MINI HOWTO...1 Robert Kiesling...1 1. Overview of RCS...1 2. System requirements...1 3. Compiling RCS from Source...1 4. Creating and maintaining archives...1 5. ci(1) and co(1)...1
JetBrains ReSharper 2.0 Overview Introduction ReSharper is undoubtedly the most intelligent add-in to Visual Studio.NET 2003 and 2005. It greatly increases the productivity of C# and ASP.NET developers,
Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues
Zend Server 4.0 Beta 2 Release Announcement Thank you for your participation in the Zend Server 4.0 beta program. Your involvement will help us ensure we best address your needs and deliver even higher
Helping you avoid stack overflow crashes!
Helping you avoid stack overflow crashes! One of the toughest (and unfortunately common) problems in embedded systems is stack overflows and the collateral corruption that it can cause. As a result, we
Ubuntu, FEAP, and Virtualiza3on. Jonathan Wong Lab Mee3ng 11/08/10
Ubuntu, FEAP, and Virtualiza3on Jonathan Wong Lab Mee3ng 11/08/10 Mo3va3on Compiling and opera3ng FEAP requires knowledge of Unix/ Posix systems Being comfortable using command- line Naviga3ng the file
Basics of VTune Performance Analyzer. Intel Software College. Objectives. VTune Performance Analyzer. Agenda
Objectives At the completion of this module, you will be able to: Understand the intended purpose and usage models supported by the VTune Performance Analyzer. Identify hotspots by drilling down through
Online Enrollment Op>ons - Sales Training. 2011. Benefi+ocus.com, Inc. All rights reserved. Confiden>al and Proprietary 1
Online Enrollment Op>ons - Sales Training 2011. Benefi+ocus.com, Inc. All rights reserved. Confiden>al and Proprietary 1 Agenda Understand Why This is Important Enrollment Op>ons Available EDI Blues Enroll
co Characterizing and Tracing Packet Floods Using Cisco R
co Characterizing and Tracing Packet Floods Using Cisco R Table of Contents Characterizing and Tracing Packet Floods Using Cisco Routers...1 Introduction...1 Before You Begin...1 Conventions...1 Prerequisites...1
Andreas Burghart 6 October 2014 v1.0
Yocto Qt Application Development Andreas Burghart 6 October 2014 Contents 1.0 Introduction... 3 1.1 Qt for Embedded Linux... 3 1.2 Outline... 4 1.3 Assumptions... 5 1.4 Corrections... 5 1.5 Version...
Time Limit: X Flags: -std=gnu99 -w -O2 -fomitframe-pointer. Time Limit: X. Flags: -std=c++0x -w -O2 -fomit-frame-pointer - lm
Judge Environment Language Compilers Language Version Flags/Notes Max Memory Limit C gcc 4.8.1 Flags: -std=gnu99 -w -O2 -fomit-frame-pointer - lm C++ g++ 4.8.1 Flags: -std=c++0x -w -O2 -fomit-frame-pointer
