Meet Qt (Embedded) Yu-Chen Hsueh Sales Engineer Digia USA September 2013

Total Page:16

File Type:pdf, Size:1020Kb

Meet Qt (Embedded) Yu-Chen Hsueh Sales Engineer Digia USA September 2013 Meet Qt (Embedded) Yu-Chen Hsueh Sales Engineer Digia USA September 2013 1 © 2013 Digia Agenda • A brief overview of Qt • Platform Integration • UI possibilities • Qt Quick! • Multi-screen approaches with Qt • What’s new in Qt 5.1 • The Road Ahead • Qt and Embedded • Boot To Qt • Boot To Qt – Hands On 3 © 2013 Digia Plc What is Qt? C++ CROSS-PLATFORM APPLICATION AND UI FRAMEWORK Cross- Integrated Cross- Platform Development Platform IDE Class Library Tools 4 © 2013 Digia Plc Qt Powers Industry Leading Software on Desktop ... ADOBE PHOTOSHOP ELEMENTS SKYPE GOOGLE EARTH 5 © 2013 Digia Plc … and embedded Devices ADVANCED INFO CENTERS NETWORK ANALYZERS MEDICAL DEVICES SECURITY AUTOMATION DIGITAL PHOTO FRAMES REFRIGERATORS SET TOP BOXES INDUSTRIAL/UMPCS & COFFEE MACHINES And many, many more ... 6 © 2013 Digia Plc Qt Applications Are Native Applications Qt Application Qt APIs QtGui QtCore QtNetwork QtWebkit QtSql QtMultimedia Qt/Windows Qt/Mac Qt/X11 Qt/Android Windows GDI Cocoa X11 Android NDK Windows Kernel Mac Linux Kernel Android Kernel PC HW Mac HW PC HW Android HW 7 The Qt/Embedded Stack Application QtGui QtCore Qt/Embedded QPA Wayland Windows linuxfb EGL QPA X11 Plugins OS Windows GDI X11 Windows Kernel Linux Kernel HW PC HW PC HW 8 Supported Platforms Desktop Embedded Mobile Windows Embedded Android (5.2, beta 5.1) Windows (Standard/Compact 7) Linux Embedded Linux iOS (5.2, alpha 5.1) Mac OS X INTEGRITY Win8 on ARM (WinRT) Solaris QNX BB10 (5.0) Enterprise UNIX VxWorks Jolla Sailfish 9 © 2013 Digia Qt Cross-Platform Developer Offering: Not just a GUI Toolkit Presentation QtGui QtSVG Qt Quick QtOpenGL QtWebkit QtMultimediaKit Engine QtMobility QtCore APIs QtNetwork Data QtSql QtXML 10 © 2013© 2013 Digia Digia Plc Amazing UI Possibilities 11 © 2013© 2013 Digia Digia Plc 9/17/2013 Match the Purpose Qt provides a set of UI tools and technologies for developers to choose from Different UI approaches are provided to best fit each different UI use case and development environment C++, Cool UI C++, traditional Qt/ C++ QML Qt/ C++ JS, Web C++, customized Java Script Qt/ QML Qt/ C++ C++ QML 12 Match the Purpose Qt provides a set of UI tools and technologies for developers to choose from Different UI approaches are provided to best fit each different UI use case and development environment C++, Cool UI C++, traditional Qt/ C++ QML Qt/ C++ JS, Web Qt Quick C++, customized Java Script Qt/ QML Qt/ C++ C++ QML 13 Build Advanced User Interfaces, Qt Quick • Complete UI creation Kit for developers and designers • Ideal for iterative development of expressive, animated, modern UIs with high performance • QML - CSS & JavaScript like language, same code base for UI designers & developers • Qt Quick UI runtime - Direct access to native APIs, performance boost with C++ 14 © 2012 Digia Plc 15 © 2012 Digia Plc Accessing Hardware Qt Quick UI Qt/C++ Backend Other C++ Code HW Peripherals HW Peripherals 17 © 2013 Digia Plc Enabler for Easy Customization QML t e x t t e x t Declarative UI Design t e x t Qt/C++ Engine / Imperative Logic Data Access 18 N-Screen Approaches – Scalable UI QML t e x t t e x t t e x t Qt/C++ Engine / Data Access 19 N-Screen Approaches – Different UI Designs Mobile Layout Desktop Layout Tablet Layout Car Layout t t t e t e e x e x x t x t t t t e t t e e t x e t x x t t x t t t t e t e e x e x x t x t t t Tablet Layout v.2 t e x t t e x Qt/C++ t t Engine / e x t Data Access Allows incremental development, dynamic replacement of UIs 20 N-Screen Approaches – Mass-Customization Car MF 1 branded t Generic Automotive Layout e x t t e x t t e x t t e x t t e x t Mass-customization by Qt customer Car MF 2 branded t e x t t e x t Qt/C++ t e x Engine / t Data Access 21 Platform Specific Functionality Mobile Layout Desktop Layout Tablet Layout t e t t x e e t x x t t t e t t x e e t x x t t t e t t x e e t x x t t Qt/C++ Engine / Android Data Access functionality Hardware adaptation/optimization, Bindings to native services, Embedded Extra platform specific features Linux on ARM functionality 22 Structure of an N-screen App Blackberry Android iOS Desktop <5% Small screen Medium screen Large screen <5% Common UI (Qt Quick) 20-50% Application logic (C++ or JS) 50-80% Qt 25 Summary • Qt is widely adopted across industries, use cases and platforms • One technology for all the platforms • Level of customization can vary case-by-case • Technical enablers are in place also for taking a true multi-screen approach • Can be adopted in different levels, from one device to a product line or to a whole service across different devices • If targeting a high quantity of different screens, the declarative UI design allows particularly effective software process • Write Once, Deploy Everywhere • Desktop, Embedded, Mobile 26 Qt 5.1 27 © 2013 Digia Qt Quick Controls and Layouts • A UI control library for QML language (Qt Quick) • Toolbox of premade, re-usable UI components. • 5.1 has desktop controls with native look-and-feel • 5.2 will have more, like touch controls, industry specific controls 28 Qt for Android • Qt 5.1: Technology preview • Already very usable • Most of Qt 5.1 working • Exceptions: Parts of Qt Multimedia (Camera), Qt WebKit and Qt Quick Controls • Tooling & Deployment • X86 and ARM tool-chains • Remote debugging • Packaging and signing • Fully supported in Qt 5.2 29 © 2013 Digia Qt for iOS • Qt 5.1: Technology preview • Current status • Qt Core, Qt Gui, Qt Network, Qt Widgets, Qt Sensors, Qt Quick 1 working • Tooling and deployment via XCode • Restrictions • Platform limitations compared to Mac OS X • Currently does not fully support native iOS look & feel • No QtWebKit support, but possible to use native web component instead • Fully supported in Qt 5.2 30 © 2013 Digia Qt Charts 1.3.0 • Charting library completely compatible with Qt 4 and Qt 5 • QWidgets, Qt Quick 1, Qt Quick 2 • Basic chart types • Line, Spline, Area, Bar, Donut • Static and dynamic • New additional chart types • Polar, Boxplot (box-and-whiskers) 31 © 2013 Digia The Road Ahead 32 © 2013 Digia Support More Add-On Modules in 5.x Releases • Qt Location • Qt Compositor (Wayland server) • Qt System Information • Qt NFC • Qt Bluetooth • Qt Feedback • Qt 3D • Qt Quick Controls for Touch • Commercial Qt Quick Controls 33 © 2013 Digia Cloud – Engin.io • Engin.io – Simple way to set up your own cloud • Works well with all major Cloud providers (Amazon AWS, Microsoft Azure, ….) • Create the server with a few clicks • Qt client API • Available September 2013 34 © 2013 Digia Qt Creator • Debugging improvements • New debugging backend (lldb) • CDB stability and performance • Extended Android support • Multi-Window • Stable integration for: • QBS • Diff Viewing 35 © 2013 Digia Plc Qt Quick Designer • Drag & Drop Qt Quick items and components • Support for Qt Quick Controls Available with Qt 5.1 37 © 2013 Digia Enterprise Add-Ons for QML Designer • Property Editor • Signal/Slot connection Editor • Binding Editor • QML Profiler • Spline Editor for PathView 38 © 2013 Digia Plc Visual Studio Add-In • Qt Visual Studio Add-In allows use of Visual Studio for Qt application development • Wizards for creating new Qt C++ projects and classes • Automated build setup for the Meta-Object Compiler(moc), the User Interface Compiler (uic), and the Resource Compiler (rcc) • Import and export of Qt Project {.pro} and Project Include {.pri} files • Integrated Qt resource management • Integrated Qt documentation • Debugging extensions for Qt data types • Enterprise version of the Add-In provides also • Wizards for creating new Qt Quick projects and classes • Qt Quick Application Wizard • QML highlighting in the Visual Studio editor • QML preview directly from Visual Studio 39 © 2013 Digia Plc This Is What It’s All About! Freescale i.MX 6 board running QNX iPad BlackBerry Z10 Two different Android devices with different OS versions 41 © 2013 Digia Plc Qt and Embedded 42 © 2013 Digia Plc 9/17/2013 Tools Integration Qt Project qmake App GCC in Makefile [Linux compiler] Linux [Linux/X11] Qt/C++Qt/C++ codeQt/C++ .pro codecode filesfiles file files qmake App Makefile Cross compiler in [Embedded Target HW Linux] qmake App .gpj MULTI in Other [INTEGRITY] Target HW IDE / Code Editor Native tool chains Qt Creator 43 © 2013 Digia Plc Embedded Options • Cross compilation / integrated tool-chains • Boot To Qt 44 © 2013 Digia Boot To Qt 45 © 2013 Digia Plc Technology preview Boot To Qt - Qt Embedded Development Out-of-the-Box Software stack Google Nexus 7 Android kernel Pre-built Image SDK Qt Creator Qt Software stack Freescale i.MX 6 Installer Cross-compilers Android kernel (Boundary Devices SABRE Lite) Build tools Pre-built Image Qt Qt Embedded Android Software stack Beagle Board xM Android kernel Android kernel Emulator Pre-built Image 46 Why Boot To Qt? 1. Ease of use in getting started with creating embedded devices • Up and running with deployment from day 1 • Out-of-Box build environment • Focus on Qt application creation, not on selecting/setting up software stack • Our light-weight stack is optimized for running Qt! • Professional, enterprise level tooling around Qt libraries • Digia as sole source software/OS provider for your hardware 2. Embedded Android and Embedded Linux supported 47 © 2013 Digia Plc Thank You! qt.digia.com Blog: blog.qt.digia.com Twitter: @Qtcommercial [email protected] © 2012 Digia Plc 9/17/2013 Boot To Qt – Hands On 53 © 2013 Digia Plc What to Bring for Boot to Qt For the full workshop experience, please bring your laptop, Android Nexus 7 and a Micro USB Cable.
Recommended publications
  • Sffi^Rf^ Mrr Sm »Irl^Cft- Cts=R Qr^'N:*1' 55^ Arrftrr Itdt Szrf^^Rfi" Cw5?Ftst Int Iht^Ia^Tszrr 5F^T^ , Ss^Ttm Irr^T& Tn R R M ^Cfvi52nr ®R5ftifr Jrn^ Mmr Arr^
    : - 5«rT • » (» sfne sPT3T?ft«5 J^TTafV K « v ^t’nw JWW^'UR^ ar^j— ^ o. i Jf: f j spiftwrsj I— ' (H.d, i,h,iai;4'Mtt.&» .. t|jii; ' .=r.-=sy; j— 384 fc T f^ cH*t- irf^ srxRrrgT 2s*wcfr-5«ir V*rt 9crrtrrf^c*rr5r irfV^* ^ | r ft^ 3g^*R?TS3rr ^=srr=nrr^ arr^J if te T^RTTSf SW #r=fr «?rff iVRfllT 2?T ^tHTiTT aig^Tej q W aPrSsRvfr^ tff^ I ^ t*t rm f afr^ j^eir I^T^arr^. arr 3 ^ ^ ^ jicf zEs^corr^T S T W t % ?j t o ^ p ?t^t =r t e w rNf^T ? tt3T arr|, ^jraisT a^, 9crrm1^wT?i tFnrrft *iTt:’Tc? arr|-. fVr^w, ^Tft:TcT^ ^ arri. ct 9 » ^ m q w r t t ^ mf^i^ arrim^'; *mp^ ifet - 5rn^ f=rf^^ t^ t ^ ^.i aiTirr# spTHqTTtTQ=lT«lzp t e w fVl^T^IT^ ^‘ifte T arT|. ^^TTT^T iTfvtl 5fTtcr ^ a r f ^ aKP5mr5^ qa ^ftiRTtrw 5PF^ qTcfTcrftcT qlV^Tcf ^arf^rf^T^r 3 f ^ qi*r qsS arrl^, ^J^arrar pcfwrf^ocrr^ TT^fFTTicrr, aq ^w arT'Hrr wraT q^qi ir r i^ w afiar m, aT^q^rr-BT r r ^ inaoaiTcT sj-wfafet cTfuraT arrftrr ^rset trc=fr5aT ac^w ^ ^ Ta arwaiar^q ^ s^ tt t e a i ^aaF ajp^Tafr f^rT^wT pcrnrrftjw q^'caT^frft, ^cTT. ^ WTsar a a rf^ caiaft aia 5Jftt5t 2»^. as[^ qi-ax a im t- 55*Tgq wiacfr arwrr ^ irfraqrazF qcic? ara^Tsarr trmr^ sax #ra4xcr a-frazpXTTsx arwx arx^ 3rr|.
    [Show full text]
  • Xerox University Microfilms 300 North Zaob Road Ann Arbor
    INFORMATION TO USERS This material was produced from a microfilm copy of the original document While the most advanced technological means to photograph and reproduce this document have been used, the quality is heavily dependent upon the quality of the original submitted. The following explanation of techniques is provided to help you understand markings or patterns which may appear on this reproduction. 1.The sign or "target" for pages apparently lacking from the document photographed is "Missing Page(s)". If it was possible to obtain the missing page{s) or section, they are spliced into the film along with adjacent pages. This may have necessitated cutting thru an image and duplicating adjacent pages to insure you complete continuity. 2. When an image on die film is obliterated with a large round black mark, it is an indication that the photographer suspected that the copy may have moved during exposure and thus cause a blurred image. You will find a good image of the page in the adjacent frame. 3. When a map, drawing or chart, etc., was part of the material being photographed the photographer followed a definite method in "sectioning" the material. It is customary to begin photoing at the upper left hand corner of a large sheet and to continue photoing from left to right in equal sections w ith a small overlap. I f necessary, sectioning is continued again — beginning below the first raw and continuing on until complete. 4. The majority of users indicate that the textual content is of greatest value, however, a somewhat higher quality reproduction could be made from "photographs" if essential to the understanding of the dissertation.
    [Show full text]
  • Challenges in Debugging Dynamically Compiled Languages As Exemplified by C# Debugger for Tizen
    Samsung R&D Institute Russia Center of System Software Challenges in debugging dynamically compiled languages as exemplified by C# debugger for Tizen Dmitri Botcharnikov 1 Agenda Dynamically compiled languages Tizen .NET Debugging Challenges Tizen .NET Debugger internals Future plans 2 Dynamically compiled languages Dynamically (Just-In-Time) compiled languages VM manages low-level details: memory allocation, exception handling But for debuggers… 3 Tizen .NET Visual Studio Tools for Tizen preview were released C# was added to Tizen Over 1,400,000 C# developers worldwide Tizen running on 50 millions Samsung devices (TV, wearables, mobile, IoT) http://developer.tizen.org 4 Technologies Tizen OS (emulator, platform-specific APIs) Xamarin.Forms .NET Core (CoreCLR, CoreFX, Roslyn) Visual Studio 2015 (Windows) 5 C# Compilation & Execution C# source MSIL Output CLR Roslyn JIT Language-specific compiler: C# => MSIL CLR JIT compiler: MSIL => native code 6 Debugging Challenges Source code to native code mapping ◦ C# compiler generates debugging information for source code to MSIL mapping Stepping in and over ◦ Stepping into not yet compiled code ◦ Managed exception handlers ◦ Lambdas, closures & iterators Local variables & arguments inspection ◦ C# compiler generates debugging information for MSIL variables 7 LLDB Subproject of LLVM (http://lldb.llvm.org) Native debugger builds on LLVM and Clang libraries Supports X86 and ARM architectures 8 SOS debugger plug-in Plug-in for LLDB (libsosplugin.so, libsos.so) Port of SOS.dll
    [Show full text]
  • LLDB Tutorial: Adding Debugger Support for Your Target LLVM 2016 Tutorial
    LLDB Tutorial: Adding debugger support for your target LLVM 2016 tutorial Deepak Panickal Andrzej Warzyński Codeplay Soware @codeplayso March 18, 2016 Outline • LLDB architecture crash course I Overview of LLDB I User scenarios such as breakpoints, stack-walking etc. I Debugging ps • Both generic and specialized architectures are covered I MSP430 lldb debugging, which we have implemented for this tutorial I github.com/codeplaysoftware/lldb-msp430 I ARM architecture is also referred to for the generic cases • Focusing on debugging ELF executables on Linux EuroLLVM 2016 Outline 2 / 54 Overview Part 1: The Basics Part 2: ELF And Architecture Support Part 3: Registers Part 4: Memory and Breakpoints Part 5: Other Key Features Part 6: Debugging Tips Part 7: MSP430 Quick Recap EuroLLVM 2016 Outline 3 / 54 Part 1 The Basics EuroLLVM 2016 Part 1: The Basics 4 / 54 LLDB - Architecture lldb user driver TCP Socket GDB RSP . lldb-server debug API Architecture of LLDB LLDB offers mulple opons: I user drivers: command line, lldb-mi, Python I debug API: ptrace/simulator/runme/actual drivers EuroLLVM 2016 Part 1: The Basics 5 / 54 lldb/lldb-server lldb • Runs on host • Interacts with the user • Understands symbols, DWARF informaon, data formats, etc. • Plugin architecture I ProcessGDBRemote, DynamicLoaderPOSIXDYLD, ABISysV_msp430 are some... lldb-server • Runs on both remote and host, communicates to lldb via RSP over whichever medium is available • Interacts with the hardware/simulator • Deals with binary data and memory addresses • Plugin architecture I ObjectFileELF, ProcessLinux, are some... EuroLLVM 2016 Part 1: The Basics 6 / 54 GDB Remote Serial Protocol • Simple, ASCII message based protocol • Designed for debugging remote targets • Originally developed for gdb<->gdbserver communicaon • Extended for LLDB, see lldb-gdb-remote.txt Packet structure: checksum $.
    [Show full text]
  • Nateguyver Breakpoints LLDB Debug Toolchain More
    ��������������������������� ��������������������������� �������� ����������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������� ������������������������������� ��������������������������������������������������������������������������������������� ����������������������������������������������������������������������� �������������������������������������������������������������������������������������� �������������������������������������������� ◼ Breakpoints & watchpoints ◼ Xcode's graphical debugger ◼ LLDB �������������� “ ������������������������������������������������������������������������������������ ��������������������������� ”������������������ ���������������������������� ◼ Assertions, Logging, and Debug configuration ◼ Static analysis & runtime memory tools ◼ Unit testing in xcode ���������������� ◼ Emphasis on LLDB as our debugging foundation ◼ Tips and tricks to stramline your the debuggin experience ◼ Use LLDB as an extensible investigative tool “�������������”������������ “��’���������������������������������������������������’���������������������’�������������� ��������’����������������������������������� ”������������������ ��������������������������������������������������� ���������������������������������������������������������������������������������� ����������������������������������������������������������������������������
    [Show full text]
  • Rapid GUI Development with Qtruby
    Rapid GUI Development with QtRuby Caleb Tennis The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas BOOKLEET © Many of the designations used by manufacturers and sellers to distin- guish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Pro- grammer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC. Qt® is a registered trademark of Trolltech in Norway, the United States and other countries. Useful Friday Links • Source code from this book and Every precaution was taken in the preparation of this book. However, the other resources. publisher assumes no responsibility for errors or omissions, or for dam- • Free updates to this PDF • Errata and suggestions. To report ages that may result from the use of information (including program list- an erratum on a page, click the ings) contained herein. link in the footer. To see what we’re up to, please visit us at http://www.pragmaticprogrammer.com Copyright © 2006 The Pragmatic Programmers LLC. All rights reserved. This PDF publication is intended for the personal use of the individual whose name appears at the bottom of each page. This publication may not be disseminated to others by any means without the prior consent of the publisher. In particular, the publication must not be made available on the Internet (via a web server, file sharing network, or any other means).
    [Show full text]
  • Kdesrc-Build Script Manual
    kdesrc-build Script Manual Michael Pyne Carlos Woelz kdesrc-build Script Manual 2 Contents 1 Introduction 8 1.1 A brief introduction to kdesrc-build . .8 1.1.1 What is kdesrc-build? . .8 1.1.2 kdesrc-build operation ‘in a nutshell’ . .8 1.2 Documentation Overview . .9 2 Getting Started 10 2.1 Preparing the System to Build KDE . 10 2.1.1 Setup a new user account . 10 2.1.2 Ensure your system is ready to build KDE software . 10 2.1.3 Setup kdesrc-build . 12 2.1.3.1 Install kdesrc-build . 12 2.1.3.2 Prepare the configuration file . 12 2.1.3.2.1 Manual setup of configuration file . 12 2.2 Setting the Configuration Data . 13 2.3 Using the kdesrc-build script . 14 2.3.1 Loading project metadata . 14 2.3.2 Previewing what will happen when kdesrc-build runs . 14 2.3.3 Resolving build failures . 15 2.4 Building specific modules . 16 2.5 Setting the Environment to Run Your KDEPlasma Desktop . 17 2.5.1 Automatically installing a login driver . 18 2.5.1.1 Adding xsession support for distributions . 18 2.5.1.2 Manually adding support for xsession . 18 2.5.2 Setting up the environment manually . 19 2.6 Module Organization and selection . 19 2.6.1 KDE Software Organization . 19 2.6.2 Selecting modules to build . 19 2.6.3 Module Sets . 20 2.6.3.1 The basic module set concept . 20 2.6.3.2 Special Support for KDE module sets .
    [Show full text]
  • Op E N So U R C E Yea R B O O K 2 0
    OPEN SOURCE YEARBOOK 2016 ..... ........ .... ... .. .... .. .. ... .. OPENSOURCE.COM Opensource.com publishes stories about creating, adopting, and sharing open source solutions. Visit Opensource.com to learn more about how the open source way is improving technologies, education, business, government, health, law, entertainment, humanitarian efforts, and more. Submit a story idea: https://opensource.com/story Email us: [email protected] Chat with us in Freenode IRC: #opensource.com . OPEN SOURCE YEARBOOK 2016 . OPENSOURCE.COM 3 ...... ........ .. .. .. ... .... AUTOGRAPHS . ... .. .... .. .. ... .. ........ ...... ........ .. .. .. ... .... AUTOGRAPHS . ... .. .... .. .. ... .. ........ OPENSOURCE.COM...... ........ .. .. .. ... .... ........ WRITE FOR US ..... .. .. .. ... .... 7 big reasons to contribute to Opensource.com: Career benefits: “I probably would not have gotten my most recent job if it had not been for my articles on 1 Opensource.com.” Raise awareness: “The platform and publicity that is available through Opensource.com is extremely 2 valuable.” Grow your network: “I met a lot of interesting people after that, boosted my blog stats immediately, and 3 even got some business offers!” Contribute back to open source communities: “Writing for Opensource.com has allowed me to give 4 back to a community of users and developers from whom I have truly benefited for many years.” Receive free, professional editing services: “The team helps me, through feedback, on improving my 5 writing skills.” We’re loveable: “I love the Opensource.com team. I have known some of them for years and they are 6 good people.” 7 Writing for us is easy: “I couldn't have been more pleased with my writing experience.” Email us to learn more or to share your feedback about writing for us: https://opensource.com/story Visit our Participate page to more about joining in the Opensource.com community: https://opensource.com/participate Find our editorial team, moderators, authors, and readers on Freenode IRC at #opensource.com: https://opensource.com/irc .
    [Show full text]
  • The Linux Command Line
    The Linux Command Line Second Internet Edition William E. Shotts, Jr. A LinuxCommand.org Book Copyright ©2008-2013, William E. Shotts, Jr. This work is licensed under the Creative Commons Attribution-Noncommercial-No De- rivative Works 3.0 United States License. To view a copy of this license, visit the link above or send a letter to Creative Commons, 171 Second Street, Suite 300, San Fran- cisco, California, 94105, USA. Linux® is the registered trademark of Linus Torvalds. All other trademarks belong to their respective owners. This book is part of the LinuxCommand.org project, a site for Linux education and advo- cacy devoted to helping users of legacy operating systems migrate into the future. You may contact the LinuxCommand.org project at http://linuxcommand.org. This book is also available in printed form, published by No Starch Press and may be purchased wherever fine books are sold. No Starch Press also offers this book in elec- tronic formats for most popular e-readers: http://nostarch.com/tlcl.htm Release History Version Date Description 13.07 July 6, 2013 Second Internet Edition. 09.12 December 14, 2009 First Internet Edition. 09.11 November 19, 2009 Fourth draft with almost all reviewer feedback incorporated and edited through chapter 37. 09.10 October 3, 2009 Third draft with revised table formatting, partial application of reviewers feedback and edited through chapter 18. 09.08 August 12, 2009 Second draft incorporating the first editing pass. 09.07 July 18, 2009 Completed first draft. Table of Contents Introduction....................................................................................................xvi
    [Show full text]
  • Improving Program Reconstruction in LLDB Using C++ Modules
    Beyond Debug Information: Improving Program Reconstruction in LLDB using C++ Modules Master’s Thesis in Computer Science and Engineering RAPHAEL ISEMANN Department of Computer Science and Engineering CHALMERS UNIVERSITY OF TECHNOLOGY UNIVERSITY OF GOTHENBURG Gothenburg, Sweden 2019 Master’s thesis 2019 Beyond Debug Information: Improving Program Reconstruction in LLDB using C++ Modules Raphael Isemann Department of Computer Science and Engineering Chalmers University of Technology University of Gothenburg Gothenburg, Sweden 2019 Beyond Debug Information: Improving Program Reconstruction in LLDB using C++ Modules Raphael Isemann © Raphael Isemann, 2019. Supervisor: Thomas Sewell, Department of Computer Science and Engineering Examiner: Magnus Myreen, Department of Computer Science and Engineering Master’s Thesis 2019 Department of Computer Science and Engineering Chalmers University of Technology and University of Gothenburg SE-412 96 Gothenburg Telephone +46 31 772 1000 Cover: The LLVM logo, owned by and royality-free licensed from Apple Inc. Typeset in LATEX Gothenburg, Sweden 2019 iv Beyond Debug Information: Improving Program Reconstruction in LLDB using C++ Modules Raphael Isemann Department of Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Abstract Expression evaluation is a core feature of every modern C++ debugger. Still, no C++ debugger currently features an expression evaluator that consistently supports advanced language features such as meta-programming with templates. The under- lying problem is that the debugger can often only partially reconstruct the debugged program from the debug information. This thesis presents a solution to this problem by using C++ modules as an additional source of program information. We devel- oped a prototype based on the LLDB debugger that is loading missing program components from the C++ modules used by the program.
    [Show full text]
  • Swift for Beginners: Develop and Design, Second Edition Boisy G
    Swift for Beginners DEVELOP AND DESIGN SECOND EDITION Boisy G. Pitre Swift for Beginners SECOND EDITION DEVELOP AND DESIGN Boisy G. Pitre PEACHPIT PRESS WWW.PEACHPIT.COM Swift for Beginners: Develop and Design, Second Edition Boisy G. Pitre Peachpit Press www.peachpit.com To report errors, please send a note to [email protected]. Peachpit Press is a division of Pearson Education. Copyright © 2016 by Boisy G. Pitre Editor: Connie Jeung-Mills Production editor: David Van Ness Development editor: Robyn G. Thomas Copyeditor and proofreader: Scout Festa Technical editor: Steve Phillips Compositor: Danielle Foster Indexer: Valerie Haynes Perry Cover design: Aren Straiger Interior design: Mimi Heft Notice of Rights All rights reserved. No part of this book may be reproduced or transmitted in any form by any means, electronic, mechani- cal, photocopying, recording, or otherwise, without the prior written permission of the publisher. For information on getting permission for reprints and excerpts, contact [email protected]. Notice of Liability The information in this book is distributed on an “As Is” basis, without warranty. While every precaution has been taken in the preparation of the book, neither the author nor Peachpit shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the instructions contained in this book or by the computer software and hardware products described in it. Trademarks Apple, Cocoa, Cocoa Touch, Objective-C, OS X, Swift, and Xcode are registered trademarks of Apple Inc., registered in the U.S. and other countries. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks.
    [Show full text]
  • Swift.Org, the Open Source Project
    CHAPTER 1 Swift.org, the Open Source Project n December 3, 2015, Apple made version 2.2 of the Swift programming language open source Osoftware by creating Swift.org and contributing a key set of source code repositories covering the compilers, debuggers, libraries, and more. The Swift.org site ( https://swift.org ) was set up to serve as a central hub for this new community. The site contains documentation, binary downloads, links to the open source repositories on GitHub, mailing lists, and bug reporting mechanisms, as well as continuous integration support to maintain stability across the projects. In this chapter, I will cover what is included on the site as well as some pointers about how to get involved in this exciting community. What’s Included The Swift.org website is the focal point for the Swift language development community. Because the community supporting Swift is composed of people with diverse skill levels and different interests, the site is designed to be a single entry point from which visitors can access the information relevant to their needs. The navigation categories listed on the left-hand side of the Swift.org home page represent major topic areas into which visitors can dive, depending on whether they are developers who want to look at the source code, testers wanting to report a bug, people with general interest who want to sub- scribe to a mailing list, or any of the dozens of possible reasons why they are involved with the language. There are roughly a dozen of these major navigation categories on the Swift.org home page.
    [Show full text]