Advanced Features for an Integrated Verification Environment

Total Page:16

File Type:pdf, Size:1020Kb

Advanced Features for an Integrated Verification Environment Advanced Features for an Integrated Verification Environment Ruben Kälin [email protected] Master Thesis November 2016 https://bitbucket.org/viperproject/viper-ide/ Supervisor Arshavir Ter-Gabrielyan Abstract Currently, in software verification, the IDE support is insufficient, especially for symbolic exe- cution. Many verification technologies are being developed, but only few IDEs target software verification. For example, users of the Viper framework had only little assistance in writing, and no assistance in debugging their software so far. The common way of invoking the verifier is through the command line, as a sufficient IDE support has been missing. An IDE capable of handling more than one language is desirable, as there are many small verification languages. Without proper IDE support writing, verifying, and debugging software is cumbersome. Many of the tasks normally handled by an IDE need to be performed manually. A capable IDE so- lution could reduce the overhead of verifying software and thereby improve the programmer’s productivity. In this Master’s thesis, we built a cross-platform IDE for creating Viper programs. The IDE assists the user in the process of writing, verifying, and debugging Viper source code. This support ranges from automatically performing tasks at the right time to visualizing the symbolic states and counterexamples. We provide intuitive debugging support for traversing all states of symbolic execution and allow the user to visually compare states. The Viper IDE is based on Microsoft Visual Studio Code. We use the Viper toolchain as a verification engine. We provide a solution for symbolic execution, whereas the existing solutions focus on a different verification approach. We manage to visualize the internal state of the verification in a usable way. The implemented solution is highly configurable and allows for an easy integration of additional tools, for example, for specification inference. These novel features allow the user to explore failed verification attempts and thereby understand the cause of the problem. Moreover, the implemented solution generally improves the usability of the Viper framework. i ii Acknowledgment First and foremost, I would like to thank my thesis advisor Arshavir Ter-Gabrielyan of the Chair of programming methodology at ETH Zürich. He guided the project and provided invaluable feedback. His door was always open whenever I had a question, and he took the time for testing the system and proofreading the thesis. My thanks go to Prof. Dr. Peter Müller, head of the Chair of programming methodology at ETH Zürich for providing the big picture and valuable feedback. During the course of this project many people were involved in answering technical and con- ceptual questions and testing the system. I am grateful for Malte Schwerhoff’s help with all verification backend-related issues. He also assisted the project planning with insightful ideas. I would like to thank Dimitar Asenov for his support in taking the right decisions for the user interface of the project. My thanks go to Marco Eilers, Dr. Alex Summers, and all other testers for detecting and reporting issues. Finally, I want to express my gratitude to my family and friends, especially Amanda Jenny for their support and continuous encouragement throughout the thesis. Thank you for taking your time to proofread the thesis. Without you this thesis would not have been possible. iii iv Contents 1. Introduction1 1.1. Problem Statement................................1 1.2. Goals.......................................2 1.3. Previous Solution.................................3 1.4. Viper.......................................3 1.5. Abbreviations...................................5 1.6. Structure of this Document............................5 2. State-of-the-Art7 2.1. Verification Technologies.............................7 2.1.1. Satisfiability Modulo Theories Solver..................8 2.1.2. Verification Condition Generation....................8 2.1.3. Symbolic Execution...........................8 2.2. Integrated Development Environments for Verification.............8 2.2.1. Design Concepts for Debugging Symbolic Execution..........9 2.2.2. Dafny Integrated Development Environment..............9 2.3. Previous Solution.................................9 2.4. Text Editor Comparison..............................9 2.4.1. Sublime Text............................... 10 2.4.2. Atom................................... 11 2.4.3. Visual Studio Code............................ 11 3. Requirement Analysis and Overview of Planned Features 15 3.1. Pre-Verification Phase............................... 15 3.2. Pre-Verification Information Reporting...................... 16 3.3. Interaction with the SE Verification Backend................... 17 v Contents 3.4. Error Reporting.................................. 18 3.5. Supported Operating Systems........................... 19 4. Graphical User Interface 21 4.1. Basic GUI Features................................ 21 4.1.1. Syntax Highlighting........................... 22 4.1.2. Code Completion............................. 22 4.1.3. Automatic Verification Invocation.................... 23 4.2. Features for Debugging Symbolic Execution Faliures.............. 24 4.2.1. Marking Symbolic Execution States................... 25 4.2.2. Simplified Debugging Mode....................... 27 4.2.3. Advanced Debugging Mode....................... 29 4.2.4. State Visualization............................ 31 4.2.5. Comparing States............................. 36 4.3. Status Bar..................................... 37 4.3.1. Error Reporting.............................. 37 4.3.2. Progress Reporting............................ 39 4.4. Commands and Shortcuts............................. 41 5. Implementation 43 5.1. Infrastructure................................... 43 5.1.1. Language Client............................. 44 5.1.2. Language Server............................. 45 5.1.3. Debugger................................. 46 5.1.4. External Tools.............................. 46 5.1.5. Third-Party Tools............................. 47 5.2. The Viper Protocol................................ 47 5.2.1. Client-Server Communication...................... 47 5.2.2. Communication of the Debugger with Client and Server........ 50 5.2.3. Communication between Backends and the IDE............. 51 5.2.4. Control Flow of the Viper IDE...................... 54 5.3. Configuration................................... 56 5.3.1. Configuration Validation......................... 56 5.3.2. Path Resolution.............................. 57 5.3.3. Verification Backend Settings...................... 59 5.3.4. Extensibility............................... 59 5.4. Logging...................................... 61 5.5. Adaptation of Tools................................ 62 5.5.1. Output for Progress Reporting...................... 62 5.5.2. Outputting SE States........................... 63 5.5.3. Outputting the Counterexample..................... 64 5.5.4. Backwards Compatibility......................... 64 5.5.5. Validation of Changes.......................... 65 5.6. Corner Cases................................... 65 5.6.1. Opening Individual Files Without an Opened Workspace........ 65 5.6.2. State Markers............................... 66 vi Contents 5.6.3. Installation................................ 66 5.6.4. Platform-Independent Path Configuration................ 67 5.6.5. Output Buffer Size............................ 68 5.7. Syntax Highlighting................................ 68 5.8. Automatic Code Formatting........................... 68 5.9. Time Management of the Viper IDE....................... 69 5.10. The Shutdown Sequence of Viper IDE...................... 69 6. Evaluation 71 6.1. Achieved Goals.................................. 71 6.1.1. Core Features............................... 71 6.1.2. Extension Features............................ 72 6.1.3. Unplanned Features........................... 73 6.1.4. Extensibility............................... 74 6.2. Comparison of Visual Features with Design Concepts.............. 74 6.2.1. Design Principles............................. 75 6.2.2. Comparison of the Debug Controls................... 76 6.3. Comparison to Dafny IDE............................ 76 6.3.1. State Markers............................... 76 6.3.2. Error List................................. 80 6.3.3. State Visualization............................ 80 6.3.4. Comparison of Progress Reporting.................... 80 6.4. Performance Benchmark of the Adopted Backend................ 81 6.5. Test Coverage................................... 82 6.6. Limitations.................................... 82 7. Conclusion and Future Work 85 7.1. Future Work.................................... 86 List of Figures 89 List of Tables 91 Bibliography 94 A. Infrastructure 95 B. Debug Launch Configuration 97 C. List.vpr 99 D. Temporary Files 101 E. Default Configuration 103 F. Output Messages 107 vii Contents viii 1 Introduction Tools for verifying program correctness are becoming more and more powerful and widely used. However, it is still difficult for a non-expert in program verification to debug verification errors. Current verification environments provide helpful support for verifying properties of software, such as syntax highlighting, auto-completion, and visualization of syntax errors, but lack assistance for fixing errors in proofs. 1.1. Problem Statement Modern verification tools are complicated. In case of a verification failure, the warnings and error
Recommended publications
  • Fortran Resources 1
    Fortran Resources 1 Ian D Chivers Jane Sleightholme October 17, 2020 1The original basis for this document was Mike Metcalf’s Fortran Information File. The next input came from people on comp-fortran-90. Details of how to subscribe or browse this list can be found in this document. If you have any corrections, additions, suggestions etc to make please contact us and we will endeavor to include your comments in later versions. Thanks to all the people who have contributed. 2 Revision history The most recent version can be found at https://www.fortranplus.co.uk/fortran-information/ and the files section of the comp-fortran-90 list. https://www.jiscmail.ac.uk/cgi-bin/webadmin?A0=comp-fortran-90 • October 2020. Added an entry for Nvidia to the compiler section. Nvidia has integrated the PGI compiler suite into their NVIDIA HPC SDK product. Nvidia are also contributing to the LLVM Flang project. • September 2020. Added a computer arithmetic and IEEE formats section. • June 2020. Updated the compiler entry with details of standard conformance. • April 2020. Updated the Fortran Forum entry. Damian Rouson has taken over as editor. • April 2020. Added an entry for Hewlett Packard Enterprise in the compilers section • April 2020. Updated the compiler section to change the status of the Oracle compiler. • April 2020. Added an entry in the links section to the ACM publication Fortran Forum. • March 2020. Updated the Lorenzo entry in the history section. • December 2019. Updated the compiler section to add details of the latest re- lease (7.0) of the Nag compiler, which now supports coarrays and submodules.
    [Show full text]
  • Dr. C#: a Pedagogic IDE for C# Featuring a Read-Eval-Print-Loop by Dennis Lu
    RICE UNIVERSITY Dr. C#: A Pedagogic IDE for C# Featuring a Read-Eval-Print-Loop by Dennis Lu ATHESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE Master of Science APPROVED,THESIS COMMITTEE: Robert Cartwright, Chair Professor of Computer Science Joe Warren Professor of Computer Science Dan Wallach Assistant Professor of Computer Science Dung X. Nguyen Lecturer, Computer Science Houston, Texas April, 2003 Dr. C#: A Pedagogic IDE for C# Featuring a Read-Eval-Print-Loop Dennis Lu Abstract As the primary programming language of the Microsoft .NET platform, C# will play a significant role in software development for the foreseeable future. As the language rapidly gains popularity in industry, tools made for C# development fo- cus on the professional programmer, while leaving the beginning computer science student behind. To address this problem, we introduce Dr. C#, a simple lightweight develop- ment environment with an integrated, interactive Read-Eval-Print-Loop (REPL). Dr. C# helps flatten the learning curve of both the environment and the language, enabling students to quickly learn key elements of the language and focus more easily on concepts. Dr. C# thus serves not only as a learning tool for beginner students but also as a teaching tool for instructors. The editor is based on an open source IDE called SharpDevelop. This thesis describes the implementation of Dr. C# focusing primarily on building the REPL and integrating with SharpDevelop. Acknowledgments I would like to thank my advisor Professor Robert “Corky” Cartwright for giving me the opportunity and autonomy to develop Dr. C#. I would also like to thank Professor Dung Nguyen for acting as co-advisor and for his years of guidance and support.
    [Show full text]
  • Oracle Fusion Middleware Platform Developer's Guide for Oracle Real-Time Decisions 11G Release 1 (11.1.1) E16630-06
    Oracle® Fusion Middleware Platform Developer's Guide for Oracle Real-Time Decisions 11g Release 1 (11.1.1) E16630-06 February 2013 Explains how to develop adaptive solutions with Oracle Real-Time Decisions (Oracle RTD). Includes a tutorial, information about integrating with Oracle RTD, and details about Inline Services. Oracle Fusion Middleware Platform Developer's Guide for Oracle Real-Time Decisions 11g Release 1 (11.1.1) E16630-06 Copyright © 2011, 2013, Oracle and/or its affiliates. All rights reserved. Primary Author: Oracle Corporation Contributors: Oracle Real-Time Decisions development, product management, and quality assurance teams. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S.
    [Show full text]
  • HPE Storeopen Standalone for Microsoft Windows User Guide
    HPE StoreOpen Standalone for Microsoft Windows User Guide Abstract This guide provides information about HPE StoreOpen Standalone for Microsoft Windows, which is an implementation of the Linear Tape file system (LTFS) to present an LTO-5, LTO-6, and LTO-7 tape drive and media as a disk volume, accessed via a drive letter. Part Number: EH969-90980 Published: July 2016 Edition: 1 © Copyright 2012, 2016 Hewlett Packard Enterprise Development Company LP Confidential computer software. Valid license from Hewlett Packard Enterprise required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice. The only warranties for Hewlett Packard Enterprise products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Hewlett Packard Enterprise shall not be liable for technical or editorial errors or omissions contained herein. Links to third-party websites take you outside the Hewlett Packard Enterprise website. Hewlett Packard Enterprise has no control over and is not responsible for information outside HPE.com. Acknowledgements Microsoft®, Windows®, Windows® 7, Windows Vista®, Windows® 8, and Windows Server® are trademarks of the Microsoft group of companies. Linear
    [Show full text]
  • F# in Education – Programming the New Generation
    Computer Science F# in Education – Programming Fast Facts Project Principal: the New Generation Don Syme, Principal Researcher, Microsoft Research F# is a simple, type-safe, and efficient functional programming lan- Judith Bishop, guage with special expressiveness in parallel programming, scripting, Director, Computer Science, and algorithmic development. F# combines the advantages of typed Microsoft External Research functional programming with a high-quality, well-supported modern runtime system and the Microsoft .NET library and tools base. Websites: F#: http://www.fsharp.org/ # provides type-safe, succinct, efficient and expressive functional programming Microsoft F# Developer Center: on the .NET platform. It is a simple and pragmatic language, and has particular http://msdn.microsoft.com/fsharp strengths in data-oriented programming, parallel programming, scripting, and F Pex4fun: algorithmic development. It offers access to the huge .NET library and tools base and http://www.pex4fun.com/ comes with a strong set of Microsoft® Visual Studio® development tools. This combi- nation has been so successful that the language is now a first-class language in Visual Studio 2010. Events: F# in Education Workshop: As a teaching language, F# has the advantage of being freely available for .NET http://research.microsoft.com/ as well as Mono, which means that students can develop programs on Windows®, fsharpined Macintosh, and Linux. At the moment, its richest experience is in Visual Studio 2010, but to support teaching of F#, Microsoft Research is working in conjunction with the Microsoft Technologies: F# community to ensure a consistent learning experience across all three platforms. Microsoft Visual Studio 2010 Several projects are underway for F# courseware, implementations, and compiler Microsoft .NET Framework open-sourcing.
    [Show full text]
  • Peer-To-Peer Systems: Taxonomy and Characteristics 1B
    IJCST VOL . 3, Iss UE 2, APR I L - JUNE 2012 ISSN : 0976-8491 (Online) | ISSN : 2229-4333 (Print) Peer-to-Peer Systems: Taxonomy and Characteristics 1B. Lalitha, 2Dr. Ch. D. V. Subbarao 1Dept. of CSE, JNTUCE, Anantapur, AP, India 2Dept. of CSE, S.V University, Tirupathi, AP, India Abstract Various types of networks include: The limitations of client/server systems became a proof in large scale distributed systems for emerging of peer to peer systems, A. Centralized Networks which is the basis for decentralized distributed computing. In peer Centralized P2P protocols consist of a centralized file list. In this to peer model each node takes both the roles of client and server. model a user can send a query for a file to the centralized server. As a client, it can query and download its wanted data files from The server would then send back a list of peers that have the other nodes (peers) and as a server, it can provide data files to requested file. Once the user chooses which peer to download the other nodes. This paper provides the taxonomy of P2P systems file from the centralized would then facilitate the connection of gives an overview of structured and unstructured P2P systems, the peers then remove itself from the process as illustrated in Fig also discusses the characteristics and applications of peer to peer 1. Examples of centralized networks are Napster and eDonkey systems". in its early stages. Keywords Peer-To-Peer, Distributed Systems, Structured P2P, Unstructured P2P Systems. I. Introduction A Peer-to-Peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers.
    [Show full text]
  • A Generic Integrity Verification Algorithm of Version Files for Cloud Deduplication Data Storage Guangwei Xu*†, Miaolin Lai, Jing Li†,Lisun† and Xiujin Shi
    Xu et al. EURASIP Journal on Information Security (2018) 2018:12 EURASIP Journal on https://doi.org/10.1186/s13635-018-0083-x Information Security RESEARCH Open Access A generic integrity verification algorithm of version files for cloud deduplication data storage Guangwei Xu*†, Miaolin Lai, Jing Li†,LiSun† and Xiujin Shi Abstract Data owners’ outsourced data on cloud data storage servers by the deduplication technique can reduce not only their own storage cost but also cloud’s. This paradigm also introduces new security issues such as the potential threat of data lost or corrupted. Data integrity verification is utilized to safeguard these data integrity. However, the cloud deduplication storage only focuses on file/chunk level to store one copy of the same data hosted by different data owners, and is not concerned with the same part of different data, e.g., a series of version files. We propose an integrity verification algorithm of different version files. The algorithm establishes the generic storage model of different version control methods to improve the universality of data verification. Then, the methods of verification tags and proofs generating are improved based on the index pointers corresponding to the storage relationship in the version groups and chained keys. Finally, the random diffusion extraction based on the random data sampling in the version group is proposed to improve the verification efficiency. The results of theoretical and experimental analysis indicate that the algorithm can achieve fast and large-scale verification for different version data. Keywords: Data integrity verification, Version file storage, Version group, Random diffusion extraction 1 Introduction These misgivings have prompted the data owners to worry With the rapid development of the cloud computing, whether the outsourced data are intact or corrupted cloud storage as a new generation of computing infras- on the remote servers since they are deprived of the tructure has received more and more attention.
    [Show full text]
  • Download File Management and Processing Tools
    File Management and Processing Tools Published January 2018 CONTACT US Division of Library, Archives and Museum Collections | [email protected] File Management and Processing Tools Contents Introduction ................................................................................................................................................................................... 3 Bulk operations ............................................................................................................................................................................. 3 Duplicate file finding and deduplication ......................................................................................................................................... 4 Disk space analysis....................................................................................................................................................................... 4 Image viewer ................................................................................................................................................................................. 5 Integrity checking .......................................................................................................................................................................... 5 Last Updated January 2018 2 Introduction This guidance document provides a list of software tools that can assist in electronic file management and processing. This document is intended for records managers at state agencies,
    [Show full text]
  • Workflow Experts, from Acquisition to Archive – We’Ve Got Your Back(Up)!
    Workflow experts, from acquisition to archive – we’ve got your back(up)! Version 2020.1, Released January 2020, Indianapolis, Indiana USA [email protected] www.imagineproducts.com ShotPut Pro® for Windows Contents Preface 3 Legal Copyright License Welcome 5 Overview Preferences 9 General Preferences Queue Options File Verification 15 Notifications 17 Reports 21 Offload History 23 Advanced Preferences Offloading 27 Offloading Simple and Preset Modes Folder Naming Options Advanced Folder Naming 35 Begin Offloading Offload Status and Details Drive Details Appendix 38 Appendix A— Installation 40 Appendix B— Troubleshooting Frequently Asked Questions Technical Support 42I Index n d e x 2 ShotPut Pro® for Windows Legal Copyright Documentation Version 8.2 for Windows, copyright © 2019 Imagine Products, Incorporated. All rights reserved. This documentation and the software accompanying it are the property of Imagine Products, Incorporated and are loaned to the user under the terms of a Limited Use License Agreement. Unauthorized copying or use of this documentation, the software, or any associated material is contrary to the property rights of Imagine Products Incorporated and is a violation of state and federal law. This material must be returned to Imagine Products, Incorporated upon request. ShotPut Pro® for Windows copyright © 2008-2019 Imagine Products, Incorporated. ShotPut Pro® is a registered federal trademark Reg. No. 5,757,782. Imagine Products, Inc. ® is a registered federal trademark Reg. No. 4,711,231. PreRoll Post is a trademarK of Imagine Products, Incorporated. Offload with Confidence! and Imagine: We’ve Got Your BacK(up)! are service marks of Imagine Products, Incorporated. Portions of this application use certain unmodified FFmpeg libraries under the LGPLv2.1 licensing.
    [Show full text]
  • Secure Login for SAP Single Sign-On Implementation Guide Company
    PUBLIC SAP Single Sign-On 3.0 SP02 Document Version: 1.9 – 2020-03-17 Secure Login for SAP Single Sign-On Implementation Guide company. All rights reserved. All rights company. affiliate THE BEST RUN 2020 SAP SE or an SAP SE or an SAP SAP 2020 © Content 1 Introduction to Secure Login.................................................. 10 2 System Overview............................................................11 2.1 Cryptographic Library for SAP Single Sign-On........................................12 2.2 Clients for Authentication...................................................... 12 Authentication Methods of Secure Login Client.....................................12 Authentication Methods of Secure Login Web Client................................. 13 2.3 System Overview with Secure Login Server..........................................13 2.4 PKI Structure...............................................................14 Out-of-the-Box PKI Login Server............................................... 14 PKI Integration............................................................14 2.5 Secure Communication........................................................15 2.6 Policy Server Overview.........................................................16 2.7 Digital Signing with Secure Store and Forward (SSF)....................................17 2.8 Authentication Profiles.........................................................17 3 Basic Scenarios............................................................ 18 3.1 Environment Using Secure
    [Show full text]
  • Opengl Install Guide
    OpenGL Install Guide Windows Install your favorite IDE. This tutorial assumes that you have Microsoft Visual Studio 6.0 (available from the CS Department Software Library as of Autumn 2004) installed on your machine. See specific IDE guides at the end of this document for more information. Install OpenGL OpenGL v1.1 software runtime is included as part of operating system for WinXP, Windows 2000, Windows 98, Windows 95 (OSR2) and Windows NT. If you think your copy is missing, the OpenGL v1.1 libraries are also available as the self- extracting archive file from the Microsoft website, via this url: http://download.microsoft.com/download/win95upg/info/1/W95/EN-US/Opengl95.exe OpenGL Libraries and header files are • opengl32.lib • glu32.lib • gl.h • glu.h Install GLUT GLUT is not normally pre-installed. You can download it from: http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip Install GLUT by following the instructions in the README file (copy and pasted here): Copy the files: 1. glut32.dll to %WinDir%\System, 2. glut32.lib to $(MSDevDir)\..\..\VC98\lib 3. glut.h to $(MSDevDir)\..\..\VC98\include\GL. Use OpenGL & GLUT in your source code 1. Start Visual C++ and create a new empty project of type “Win32 Console Application.” 2. To test your setup, add a simple GLUT program to the project like “drawCircle.cpp” from our sample programs. 3. You should only need to #include <GL/glut.h>. It includes the other necessary dependent libraries. You might need to modify our example programs to fit this requirement.
    [Show full text]
  • Using Visual Studio Code for Embedded Linux Development
    Embedded Linux Conference Europe 2020 Using Visual Studio Code for Embedded Linux Development Michael Opdenacker [email protected] © Copyright 2004-2020, Bootlin. embedded Linux and kernel engineering Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions and translations are welcome! - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/24 Michael Opdenacker I Founder and Embedded Linux engineer at Bootlin: I Embedded Linux engineering company I Specialized in low level development: kernel and bootloader, embedded Linux build systems, boot time reduction, secure booting, graphics layers... I Contributing to the community as much as possible (code, experience sharing, free training materials) I Current maintainer of the Elixir Cross Referencer indexing the source code of Linux, U-Boot, BusyBox... (https://elixir.bootlin.com) I Interested in discovering new tools and sharing the experience with the community. I So far, only used Microsoft tools with the purpose of replacing them! - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/24 Using Visual Studio Code for Embedded Linux Development In the Stack Overflow 2019 Developer Survey, Visual Studio Code was ranked the most popular developer environment tool, with 50.7% of 87,317 respondents claiming to use it (Wikipedia) - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/24 Disclaimer and goals I I’m not a Visual Studio Code guru! I After hearing about VS Code from many Bootlin customers, I wanted to do my own research on it and share it with you. I The main focus of this research is to find out to what extent VS Code can help with embedded Linux development, and how it compares to the Elixir Cross Referencer in terms of code browsing.
    [Show full text]