Intro to Windows Debugger (Windbg) for .NET Developers and Concepts in C# Vijay Rodrigues (Vijayrod) Last Updated: 2011-11-30 I

Total Page:16

File Type:pdf, Size:1020Kb

Intro to Windows Debugger (Windbg) for .NET Developers and Concepts in C# Vijay Rodrigues (Vijayrod) Last Updated: 2011-11-30 I Intro to Windows Debugger (WinDBG) for .NET Developers And Concepts in C# Vijay Rodrigues (VijayRod) Last Updated: 2011-11-30 I’ve written this content as part of driving .Net Academy. Most of content has been written at home in my spare time with a real slow internet connection. Due to its very nature of publicly available symbols, .Net and its debugging information is publicly available on the internet. Hence this content can be freely redistributed for non-commercial use. A lot of acknowledgements to Ranjan Bhattacharjee for this idea, to Xavier S Raj for valuable mentorship and for the logo, and to Rishi Maini for his guidance whenever required. We’ve also discussed this with multiple resources and got ideas from them. They’ve made a difference - Kane Conway, Satya Madhuri Krovvidi, Dhiraj H N, Durai Murugan, Varun Dhawan, Balmukund Lakhani, Anmol Bhasin, Tejas Shah, Ajith Krishnan, Shasank Prasad, Chandresh Hegde. If you have any new inputs or suggestion that will help this effort please let me know. Table of Contents Section i: Getting Started 1. To give a start 2. Introduction and Concepts 3. Learning - videos (and books) 4. Learning - Advantages of C# over VB.NET and vice versa 5. Practical guide to .Net debugging 6. Useful websites Section ii: Introduction 7. Introduction 8. Intro to WinDBG for .NET Developers - part II 9. Intro to WinDBG for .NET Developers - part III (Examining code and stacks) 10. Intro to WinDBG for .NET Developers - part IV (Examining code and stacks contd.) 11. Intro to WinDBG for .NET Developers - part V (still more on Examining code and stacks) 12. Intro to WinDBG for .NET Developers - part VI (Object Inspection) 13. Intro to WinDBG for .NET Developers - part VII (CLR internals) 14. Intro to WinDBG for .NET Developers - part VIII (more CLR internals - Application Domains) 15. Intro to WinDBG for .NET Developers - part IX (still more CLR internals - Memory Consumption) 16. Intro to WinDBG for .NET Developers - part X (still more CLR internals - Memory/VAS Fragmentation) 17. Intro to WinDBG for .NET Developers - part XI (still more CLR internals - Value types) 18. Intro to WinDBG for .NET Developers - part XII (still more CLR internals - String/Reference types) 19. Intro to WinDBG for .NET Developers - part XIII (still more CLR internals - Operators) 20. Intro to WinDBG for .NET Developers - part XIV (still more CLR internals - Arrays) 21. Intro to WinDBG for .NET Developers - part XV (still more CLR internals - Conditionals) 22. Intro to WinDBG for .NET Developers - part XVI (still more CLR internals - Loops) 23. Intro to WinDBG for .NET Developers - part XVII (still more CLR internals - Methods) 24. Intro to WinDBG for .NET Developers - part XVIII (still more CLR internals - Classes) 25. Intro to WinDBG for .NET Developers - part XIX (still more CLR internals - Inheritance) 26. Intro to WinDBG for .NET Developers - part XX (still more CLR internals - Method overriding) 27. Intro to WinDBG for .NET Developers - part XXI (still more CLR internals - Access Modifiers) 28. Intro to WinDBG for .NET Developers - part XXII (still more CLR internals - Static) 29. Intro to WinDBG for .NET Developers - part XXIII (still more CLR internals - Properties) 30. Intro to WinDBG for .NET Developers - part XXIV (still more CLR internals - Indexers) 31. Intro to WinDBG for .NET Developers - part XXV (still more CLR internals - Interface) To give a start Thanks to Tejas Shah for this sample! Have fun with this sample. And then try and figure out why the differences. ---------- Sample code---------- using System; using System.Collections.Generic; using System.Text; using System.Globalization; using System.Threading; namespace stringdctest { class Program { static void spanishTest() { CultureInfo myCItradES = new CultureInfo(0x040A, false); //Thats es- ES culture - same rules as Czech CultureInfo myCItradUS = new CultureInfo(0x0409, false); //Thats en- US culture - same rules as Czech string s1 = "cHa"; string s2 = "cha"; int result1 = String.Compare(s1, s2, true, myCItradUS); Console.WriteLine("\nWhen the CurrentCulture is \"en- US\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); result1 = String.Compare(s1, s2, true, myCItradES); Console.WriteLine("\nWhen the CurrentCulture is \"es- ES\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); } static void danishTest() { CultureInfo myCItraddn = new CultureInfo(0x0406, false); //Thats da- DK culture - same rules as Czech CultureInfo myCItradUS = new CultureInfo(0x0409, false); //Thats es- ES culture - same rules as Czech string s1 = "aab"; string s2 = "aAb"; int result1 = String.Compare(s1, s2, true, myCItradUS); Console.WriteLine("\nWhen the CurrentCulture is \"en- US\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); result1 = String.Compare(s1, s2, true, myCItraddn); Console.WriteLine("\nWhen the CurrentCulture is \"da- DK\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); } static void Main(string[] args) { spanishTest(); danishTest(); Console.Read(); } } } When the CurrentCulture is "en-US", the result of comparing cHa with cha is: 0 When the CurrentCulture is "es-ES", the result of comparing cHa with cha is: -1 When the CurrentCulture is "en-US", the result of comparing aab with aAb is: 0 When the CurrentCulture is "da-DK", the result of comparing aab with aAb is: 1 Answer Interesting sample. String class represents text as a series of Unicode characters so I did not have to check on code pages hence the difference appears to be due to Cultures. This is also a case insensitive comparison. Differences are due to using culture-sensitive operations when results should be independent of culture which can cause application code, like below sample, to return different results on cultures with Custom Case Mappings and Sorting Rules. For example, in the Danish language (da-DK in below sample), a case-insensitive comparison of the two-letter pairs "aA" and "AA" is not considered equal. Most .NET Framework methods that perform culture-sensitive string operations by default provide method overloads that allow you to explicitly specify the culture to use by passing a CultureInfo parameter or a System.Globalization.CompareOptions parameter. These overloads allow you to eliminate cultural variations in case mappings and sorting rules and guarantee culture-insensitive results. For example and depending on the desired behavior of the application, String.Compare can be used with the System.Globalization.CompareOptions parameter to avoid customer mappings and to avoid custom sorting rules, if required. using System; using System.Collections.Generic; using System.Text; using System.Globalization; using System.Threading; namespace stringdctest { class Program { static void spanishTest() { CultureInfo myCItradES = new CultureInfo(0x040A, false); //Thats es-ES culture - same rules as Czech CultureInfo myCItradUS = new CultureInfo(0x0409, false); //Thats en-US culture - same rules as Czech string s1 = "cHa"; string s2 = "cha"; int result1 = String.Compare(s1, s2, true, myCItradUS); Console.WriteLine("\nWhen the CurrentCulture is \"en-US\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); result1 = String.Compare(s1, s2, true, myCItradES); Console.WriteLine("\nWhen the CurrentCulture is \"es-ES\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); result1 = String.Compare(s1, s2, myCItradES, CompareOptions.OrdinalIgnoreCase); Console.WriteLine("\nWhen the CurrentCulture is \"es-ES\" AND using OrdinalIgnoreCase,\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); } static void danishTest() { CultureInfo myCItraddn = new CultureInfo(0x0406, false); //Thats da-DK culture - same rules as Czech CultureInfo myCItradUS = new CultureInfo(0x0409, false); //Thats en-US culture - same rules as Czech string s1 = "aab"; string s2 = "aAb"; int result1 = String.Compare(s1, s2, true, myCItradUS); Console.WriteLine("\nWhen the CurrentCulture is \"en-US\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); result1 = String.Compare(s1, s2, true, myCItraddn); Console.WriteLine("\nWhen the CurrentCulture is \"da-DK\",\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); result1 = String.Compare(s1, s2, myCItraddn, CompareOptions.OrdinalIgnoreCase); Console.WriteLine("\nWhen the CurrentCulture is \"da-DK\" AND using OrdinalIgnoreCase,\nthe result of comparing {0} with {1} is: {2}", s1, s2, result1); } static void Main(string[] args) { spanishTest(); danishTest(); Console.Read(); } } } When the CurrentCulture is "en-US", the result of comparing cHa with cha is: 0 When the CurrentCulture is "es-ES", the result of comparing cHa with cha is: -1 When the CurrentCulture is "es-ES" AND using OrdinalIgnoreCase, the result of comparing cHa with cha is: 0 When the CurrentCulture is "en-US", the result of comparing aab with aAb is: 0 When the CurrentCulture is "da-DK", the result of comparing aab with aAb is: 1 When the CurrentCulture is "da-DK" AND using OrdinalIgnoreCase, the result of comparing aab with aAb is: 0 More info: http://msdn.microsoft.com/en-us/xk2wykcz Custom Case Mappings and Sorting Rules http://msdn.microsoft.com/en-us/x15ca6w0 Performing Culture-Insensitive String Operations Learning - videos (and books) Some of us were discussing on quick and easy ways to learn C#/.NET. We wanted to list this so as to help go through this data during any free time. Our discussions seemed to be on “easy” or “videos” (or “books”) (I myself like reading but prefer quick
Recommended publications
  • ENDPOINT MANAGEMENT 1 Information Systems Managers
    STAFF SYMPOSIUM SERIES INFORMATION TECHNOLOGY TRACK FACILITATORS Carl Brooks System Manager ‐ Detroit, MI Chapter 13 Standing Trustee – Tammy L. Terry Debbie Smith System Manager – Robinsonville, NJ Chapter 13 Standing Trustee – Al Russo Scot Turner System Manager –Las Vegas, NV Chapter 13 Standing Trustee – Rick Yarnall Tom O’Hern Program Manager, ICF International, Baltimore, MD STACS ‐ Standing Trustee Alliance for Computer Security STAFF SYMPOSIUM ‐ IT TRACK 5/11/2017 SESSION 4 ‐ ENDPOINT MANAGEMENT 1 Information Systems Managers Windows 10 Debbie Smith System Manager Regional Staff Symposium ‐ IT Track May 11 and 12, 2017 Las Vegas, NV STAFF SYMPOSIUM ‐ IT TRACK 5/11/2017 SESSION 4 ‐ ENDPOINT MANAGEMENT 2 Windows lifecycle fact sheet End of support refers to the date when Microsoft no longer provides automatic fixes, updates, or online technical assistance. This is the time to make sure you have the latest available update or service pack installed. Without Microsoft support, you will no longer receive security updates that can help protect your PC from harmful viruses, spyware, and other malicious software that can steal your personal information. Client operating systems Latest update End of mainstream End of extended or service pack support support Windows XP Service Pack 3April 14, 2009 April 8, 2014 Windows Vista Service Pack 2April 10, 2012 April 11, 2017 Windows 7* Service Pack 1 January 13, 2015 January 14, 2020 Windows 8 Windows 8.1 January 9, 2018 January 10, 2023 Windows 10, July 2015 N/A October 13, 2020 October 14, 2025 * Support for Windows 7 RTM without service packs ended on April 9, 2013.
    [Show full text]
  • Latest X64dbg Version Supports Non-English Languges Through a Generic Algorithm That May Or May Not Work Well in Your Language
    x64dbg Documentation Release 0.1 x64dbg Jul 05, 2021 Contents 1 Suggested reads 1 1.1 What is x64dbg?.............................................1 1.2 Introduction...............................................1 1.3 GUI manual............................................... 15 1.4 Commands................................................ 31 1.5 Developers................................................ 125 1.6 Licenses................................................. 261 2 Indices and tables 277 i ii CHAPTER 1 Suggested reads If you came here because someone told you to read the manual, start by reading all sections of the introduction. Contents: 1.1 What is x64dbg? This is a x64/x32 debugger that is currently in active development. The debugger (currently) has three parts: • DBG • GUI • Bridge DBG is the debugging part of the debugger. It handles debugging (using TitanEngine) and will provide data for the GUI. GUI is the graphical part of the debugger. It is built on top of Qt and it provides the user interaction. Bridge is the communication library for the DBG and GUI part (and maybe in the future more parts). The bridge can be used to work on new features, without having to update the code of the other parts. 1.2 Introduction This section explains the basics of x64dbg. Make sure to fully read this! Contents: 1 x64dbg Documentation, Release 0.1 1.2.1 Features This program is currently under active development. It supports many basic and advanced features to ease debugging on Windows. Basic features • Full-featured debugging of DLL and EXE files (TitanEngine Community Edition) • 32-bit and 64-bit Windows support from Windows XP to Windows 10 • Built-in assembler (XEDParse/Keystone/asmjit) • Fast disassembler (Zydis) • C-like expression parser • Logging • Notes • Memory map view • Modules and symbols view • Source code view • Thread view • Content-sensitive register view • Call stack view • SEH view • Handles, privileges and TCP connections enumeration.
    [Show full text]
  • Hunting Red Team Activities with Forensic Artifacts
    Hunting Red Team Activities with Forensic Artifacts By Haboob Team 1 [email protected] Table of Contents 1. Introduction .............................................................................................................................................. 5 2. Why Threat Hunting?............................................................................................................................. 5 3. Windows Forensic.................................................................................................................................. 5 4. LAB Environment Demonstration ..................................................................................................... 6 4.1 Red Team ......................................................................................................................................... 6 4.2 Blue Team ........................................................................................................................................ 6 4.3 LAB Overview .................................................................................................................................. 6 5. Scenarios .................................................................................................................................................. 7 5.1 Remote Execution Tool (Psexec) ............................................................................................... 7 5.2 PowerShell Suspicious Commands ......................................................................................
    [Show full text]
  • Visual Studio Team Test Quick Reference a Quick Reference for Users of the Team Testing Features of Visual Studio Team System
    MICROSOFT Visual Studio Team Test Quick Reference A quick reference for users of the Team Testing features of Visual Studio Team System Geoff Gray and the Microsoft VSTS Rangers team 3/30/2009 VSTS Rangers This content was originally created by Geoff Gray for internal Microsoft use and then adopted and expanded as a Visual Studio Team System (“VSTS”) Rangers project. “Our mission is to accelerate the adoption of Team System by delivering out of band solutions for missing features or guidance. We work closely with members of Microsoft Services to make sure that our solutions address real world blockers.” -- Bijan Javidi, VSTS Rangers Lead Copyright 2009 Microsoft Corporation Page | 1 Summary This document is a collection of items from public blog sites, Microsoft® internal discussion aliases (sanitized) and experiences from various Test Consultants in the Microsoft Services Labs. The idea is to provide quick reference points around various aspects of Microsoft Visual Studio® Team Test edition that may not be covered in core documentation, or may not be easily understood. The different types of information cover: How does this feature work under the covers? How can I implement a workaround for this missing feature? This is a known bug and here is a fix or workaround. How do I troubleshoot issues I am having? The document contains two Tables of Contents (high level overview, and list of every topic covered) as well as an index. The current plan is to update the document on a regular basis as new information is found. The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication.
    [Show full text]
  • The Development and Effectiveness of Malware Vaccination
    Master of Science in Engineering: Computer Security June 2020 The Development and Effectiveness of Malware Vaccination : An Experiment Oskar Eliasson Lukas Ädel Faculty of Computing, Blekinge Institute of Technology, 371 79 Karlskrona, Sweden This thesis is submitted to the Faculty of Computing at Blekinge Institute of Technology in partial fulfilment of the requirements for the degree of Master of Science in Engineering: Computer Security. The thesis is equivalent to 20 weeks of full time studies. The authors declare that they are the sole authors of this thesis and that they have not used any sources other than those listed in the bibliography and identified as references. They further declare that they have not submitted this thesis at any other institution to obtain a degree. Contact Information: Author(s): Oskar Eliasson E-mail: [email protected] Lukas Ädel E-mail: [email protected] University advisor: Professor of Computer Engineering, Håkan Grahn Department of Computer Science Faculty of Computing Internet : www.bth.se Blekinge Institute of Technology Phone : +46 455 38 50 00 SE–371 79 Karlskrona, Sweden Fax : +46 455 38 50 57 Abstract Background. The main problem that our master thesis is trying to reduce is mal- ware infection. One method that can be used to accomplish this goal is based on the fact that most malware does not want to get caught by security programs and are actively trying to avoid them. To not get caught malware can check for the existence of security-related programs and artifacts before executing malicious code and depending on what they find, they will evaluate if the computer is worth in- fecting.
    [Show full text]
  • Download Full CV (PDF)
    Full name : Lars Bjergner Mikkelsen. Practical experience: Company name: LARSMIKKELSEN.COM Aps Street & number: Husoddebakken 26 City: Horsens Zip code: 8700 Country: Denmark. Web address: http://www.larsmikkelsen.com Start date of employment: 27-July-2007. End date of employment: Not ended Job title: Owner at LARSMIKKELSEN.COM Aps. Job description: Freelance specialist Microsoft Dynamics Ax and .NET. Technical solution architect Dynamics Ax projects. Development in x++ and C#. Integration specialist between Dynamics Ax and .NET on several projects. SharePoint Enterprise Portal solutions on Dynmaics Ax 4.0 and ASP.NET based Dynamics Ax 2009 solution. Invented, designed and developed Advanced Ax Batch. Advanced Ax Batch is a Dynamics Ax and .NET based scheduler which are used by several companies for batch execution in Dynamcis Ax. Performance optimization Dynamics Ax solutions. Specialized knowledge: Highly experienced with performance optimization and trouble shooting of Dynamics Ax installations. Technologies mastered: Programming Languages (X++, C#) Programming Libraries (Axapta, .NET Framework) Component Technology (Axapta, .NET , COM, COM+, Active X) Databases (SQL server) Markup Languages (HTML, XML) Internet (SharePoint Enterprise Portal) Development tools (Axapta, Visual studio .NET) Protocols (HTTP, SOAP, TCP/IP) 1 Company name: Columbus IT Street & number: 3151 Airway, Building N-1 City: Costa Mesa, CA Zip code: 8240 Country: USA. Web address: http://www.columbusit.com Start date of employment: 23-May-2005. End date of employment: 27-July-2007. Job title: Technology / integration manager and solution architect. Job description: Responsible for technology and integration strategies. Technical solution architect on major Dynamics Ax projects. Development in x++ and C#. Technical responsible for worldwide mobility platform.
    [Show full text]
  • Intel® Inspector 2020 Update 2 Release Notes Intel® Inspector 2020 Update 2 to Learn More About This Product, See
    Intel® Inspector 2020 Update 2 Release Notes 16 July 2020 Intel® Inspector 2020 Update 2 Customer Support For technical support, including answers to questions not addressed in this product, visit the technical support forum, FAQs, and other support information at: • https://software.intel.com/en-us/inspector/support/ • http://www.intel.com/software/products/support/ • https://software.intel.com/en-us/inspector Please remember to register your product at https://registrationcenter.intel.com/ by providing your email address. Registration entitles you to free technical support, product updates and upgrades for the duration of the support term. It also helps Intel recognize you as a valued customer in the support forum. NOTE: If your distributor provides technical support for this product, please contact them for support rather than Intel. Contents 1 Introduction 2 2 What’s New 3 3 System Requirements 3 4 Where to Find the Release 5 5 Installation Notes 5 6 Known Issues 7 7 Attributions 13 8 Legal Information 13 1 Introduction Intel® Inspector helps developers identify and resolve memory and threading correctness issues in their C, C++ and Fortran applications on Windows* and Linux*. Additionally, on Windows platforms, the tool allows the analysis of the unmanaged portion of mixed managed and unmanaged programs and identifies threading correctness issues in managed .NET C# applications. Intel Inspector is a dynamic error checking tool for developing multithreaded applications on Windows or Linux operating systems. Intel Inspector maximizes code quality and reliability by quickly detecting memory, threading, and source code security errors during the development cycle. You can also use the Intel Inspector to visualize and manage Static Analysis results created by Intel® compilers in various suite products.
    [Show full text]
  • Demarinis Kent Williams-King Di Jin Rodrigo Fonseca Vasileios P
    sysfilter: Automated System Call Filtering for Commodity Software Nicholas DeMarinis Kent Williams-King Di Jin Rodrigo Fonseca Vasileios P. Kemerlis Department of Computer Science Brown University Abstract This constant stream of additional functionality integrated Modern OSes provide a rich set of services to applications, into modern applications, i.e., feature creep, not only has primarily accessible via the system call API, to support the dire effects in terms of security and protection [1, 71], but ever growing functionality of contemporary software. How- also necessitates a rich set of OS services: applications need ever, despite the fact that applications require access to part of to interact with the OS kernel—and, primarily, they do so the system call API (to function properly), OS kernels allow via the system call (syscall) API [52]—in order to perform full and unrestricted use of the entire system call set. This not useful tasks, such as acquiring or releasing memory, spawning only violates the principle of least privilege, but also enables and terminating additional processes and execution threads, attackers to utilize extra OS services, after seizing control communicating with other programs on the same or remote of vulnerable applications, or escalate privileges further via hosts, interacting with the filesystem, and performing I/O and exploiting vulnerabilities in less-stressed kernel interfaces. process introspection. To tackle this problem, we present sysfilter: a binary Indicatively, at the time of writing, the Linux
    [Show full text]
  • Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide Thomas Kejser and Denny Lee
    Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide Thomas Kejser and Denny Lee Contributors and Technical Reviewers: Peter Adshead (UBS), T.K. Anand, KaganArca, Andrew Calvett (UBS), Brad Daniels, John Desch, Marius Dumitru, WillfriedFärber (Trivadis), Alberto Ferrari (SQLBI), Marcel Franke (pmOne), Greg Galloway (Artis Consulting), Darren Gosbell (James & Monroe), DaeSeong Han, Siva Harinath, Thomas Ivarsson (Sigma AB), Alejandro Leguizamo (SolidQ), Alexei Khalyako, Edward Melomed, AkshaiMirchandani, Sanjay Nayyar (IM Group), TomislavPiasevoli, Carl Rabeler (SolidQ), Marco Russo (SQLBI), Ashvini Sharma, Didier Simon, John Sirmon, Richard Tkachuk, Andrea Uggetti, Elizabeth Vitt, Mike Vovchik, Christopher Webb (Crossjoin Consulting), SedatYogurtcuoglu, Anne Zorner Summary: Download this book to learn about Analysis Services Multidimensional performance tuning from an operational and development perspective. This book consolidates the previously published SQL Server 2008 R2 Analysis Services Operations Guide and SQL Server 2008 R2 Analysis Services Performance Guide into a single publication that you can view on portable devices. Category: Guide Applies to: SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 Source: White paper (link to source content, link to source content) E-book publication date: May 2012 200 pages This page intentionally left blank Copyright © 2012 by Microsoft Corporation All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Microsoft and the trademarks listed at http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx are trademarks of the Microsoft group of companies. All other marks are property of their respective owners.
    [Show full text]
  • Building Custom Applications on MMA9550L/MMA9551L By: Fengyi Li Applications Engineer
    Freescale Semiconductor Document Number: AN4129 Application Note Rev. 0, 01/2012 Building Custom Applications on MMA9550L/MMA9551L by: Fengyi Li Applications Engineer 1Introduction Contents 1 Introduction . 1 The Freescale MMA955xL Xtrinsic family of devices 2 Architecture . 2 are high-precision, intelligent accelerometers built on the 2.1 Top-level diagram . 2 2.2 Memory space. 3 Freescale ColdFire version 1 core. 3 Tools to build custom projects . 6 3.1 MMA955xL template . 6 The MMA955xL family’s microcontroller core enables 3.2 Sensor Toolbox kit. 29 the development of custom applications in the built-in 3.3 MMA955xL reference manuals . 33 4 Template contents . 34 FLASH memory. Programming and debugging tasks are 4.1 Custom applications on the Freescale platform . 34 supported by Freescale’s CodeWarrior Development 4.2 Define RAM memory for custom applications . 36 Studio for Microcontrollers (Eclipse based IDE). 4.3 Set the custom application run rate. 38 4.4 Access accelerometer data . 39 4.5 Gesture functions . 40 The MMA9550L/MMA9551L firmware platform is 4.6 Stream data to FIFO . 43 specifically designed to ease custom application 4.7 Stream events to FIFO . 46 integration. Building custom applications on the built-in 5 Summary . 48 firmware platform provides an organized and more code-efficient sensing system to monitor development tasks, which reduces the application development cycle. This document introduces the code architecture required for creating a custom application, the instructions for binding it with the Freescale firmware platform, and the available tools that support the custom application development on the MMA955xL family of devices. © 2012 Freescale Semiconductor, Inc.
    [Show full text]
  • Pro .NET Memory Management for Better Code, Performance, and Scalability
    Pro .NET Memory Management For Better Code, Performance, and Scalability Konrad Kokosa Pro .NET Memory Management Konrad Kokosa Warsaw, Poland ISBN-13 (pbk): 978-1-4842-4026-7 ISBN-13 (electronic): 978-1-4842-4027-4 https://doi.org/10.1007/978-1-4842-4027-4 Library of Congress Control Number: 2018962862 Copyright © 2018 by Konrad Kokosa This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • Deep Dive Into OS Internals with Windbg Malware and OS Internals
    2012 Deep Dive into OS Internals with Windbg Malware and OS Internals An approach towards reversing malwares, shellcodes and other malicious codes to understand the ways in which they use the OS Internals for their functionality. Sudeep Pal Singh Honeywell 1/26/2012 Page 1 Table of Contents Preface ............................................................................................................................................................................ 3 Reversing Windows Internals .......................................................................................................................................... 4 Portable Executable Anatomy ......................................................................................................................................... 5 Data Directories of Interest ............................................................................................................................................. 7 Import Directory .............................................................................................................................................................. 8 Import Address Table .................................................................................................................................................... 12 Export Directory ............................................................................................................................................................ 13 Manual Walkthrough of Export Directory ....................................................................................................................
    [Show full text]