A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging
IEEE Transactions on Software Engineering
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
ANTLR: a predicated-LL(k) parser generator
Software—Practice & Experience
DIVA: a reliable substrate for deep submicron microarchitecture design
Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture
Bandera: a source-level interface for model checking Java programs
Proceedings of the 22nd international conference on Software engineering
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESP: path-sensitive program verification in polynomial time
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Handbook of Theoretical Computer Science
Handbook of Theoretical Computer Science
The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software
IEEE Transactions on Software Engineering
Temporal Logic with Forgettable Past
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
The Temporal Rover and the ATG Rover
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Monitor-Based Formal Specification of PCI
FMCAD '00 Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design
Automata For Modeling Real-Time Systems
ICALP '90 Proceedings of the 17th International Colloquium on Automata, Languages and Programming
TACAS '98 Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Synthesizing Monitors for Safety Properties
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Fault Diagnosis for Timed Automata
FTRTFT '02 Proceedings of the 7th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems: Co-sponsored by IFIP WG 2.2
Towards Totally Verified Systems
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
Proceedings of the Conference on Logic of Programs
Assertions: A Personal Perspective
IEEE Annals of the History of Computing
Runtime safety analysis of multithreaded programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Checking Finite Traces Using Alternating Automata
Formal Methods in System Design
Java-MaC: A Run-Time Assurance Approach for Java Programs
Formal Methods in System Design
An Overview of the Runtime Verification Tool Java PathExplorer
Formal Methods in System Design
Efficient monitoring of safety properties
International Journal on Software Tools for Technology Transfer (STTT) - Special section on tools and algorithms for the construction and analysis of systems
Rewriting-Based Techniques for Runtime Verification
Automated Software Engineering
LOLA: Runtime Monitoring of Synchronous Systems
TIME '05 Proceedings of the 12th International Symposium on Temporal Representation and Reasoning
Event-based runtime verification of java programs
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Random testing of C calling conventions
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Testing real-time embedded software using UPPAAL-TRON: an industrial case study
Proceedings of the 5th ACM international conference on Embedded software
RT-MaC: Runtime Monitoring and Checking of Quantitative and Probabilistic Properties
RTCSA '05 Proceedings of the 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model-based runtime analysis of distributed reactive systems
ASWEC '06 Proceedings of the Australian Software Engineering Conference
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
Valgrind: a framework for heavyweight dynamic binary instrumentation
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Checking system rules using system-specific, programmer-written compiler extensions
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
How to shadow every byte of memory used by a program
Proceedings of the 3rd international conference on Virtual execution environments
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Mop: an efficient and generic runtime verification framework
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Structural Testing of Executables
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Decision Procedures: An Algorithmic Point of View
Decision Procedures: An Algorithmic Point of View
WYSINWYX: What You See Is Not What You eXecute
Verified Software: Theories, Tools, Experiments
Verified Software: Theories, Tools, Experiments
Runtime Verification of C Programs
TestCom '08 / FATES '08 Proceedings of the 20th IFIP TC 6/WG 6.1 international conference on Testing of Software and Communicating Systems: 8th International Workshop
Volatiles are miscompiled, and what to do about it
EMSOFT '08 Proceedings of the 8th ACM international conference on Embedded software
Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems
RTSS '08 Proceedings of the 2008 Real-Time Systems Symposium
Goanna: Syntactic Software Model Checking
ATVA '08 Proceedings of the 6th International Symposium on Automated Technology for Verification and Analysis
An Abstract Interpretation-Based Framework for Control Flow Reconstruction from Binaries
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Automatic Bug Detection in Microcontroller Software by Static Program Analysis
SOFSEM '09 Proceedings of the 35th Conference on Current Trends in Theory and Practice of Computer Science
Safe Runtime Verification of Real-Time Properties
FORMATS '09 Proceedings of the 7th International Conference on Formal Modeling and Analysis of Timed Systems
Handling mixed-criticality in SoC-based real-time embedded systems
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
A Parallel Algorithm for the Efficient Solution of a General Class of Recurrence Equations
IEEE Transactions on Computers
A few billion lines of code later: using static analysis to find bugs in the real world
Communications of the ACM
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
Software Verification and System Assurance
SEFM '09 Proceedings of the 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods
DMaC: Distributed Monitoring and Checking
Runtime Verification
Logahedra: A New Weakly Relational Domain
ATVA '09 Proceedings of the 7th International Symposium on Automated Technology for Verification and Analysis
Testing Conformance of Real-Time Applications by Automatic Generation of Observers
Electronic Notes in Theoretical Computer Science (ENTCS)
Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal Methods in System Design
Model checking of software for microcontrollers
ACM Transactions on Embedded Computing Systems (TECS)
seL4: formal verification of an operating-system kernel
Communications of the ACM
WYSINWYX: What you see is not what you eXecute
ACM Transactions on Programming Languages and Systems (TOPLAS)
Sampling-based program execution monitoring
Proceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systems
AMT: a property-based monitoring tool for analog systems
FORMATS'07 Proceedings of the 5th international conference on Formal modeling and analysis of timed systems
Runtime verification of interactions: from MSCs to aspects
RV'07 Proceedings of the 7th international conference on Runtime verification
Testing real-time systems using UPPAAL
Formal methods and testing
Copilot: a hard real-time runtime monitor
RV'10 Proceedings of the First international conference on Runtime verification
Who guards the guardians?: toward v&v of health management software
RV'10 Proceedings of the First international conference on Runtime verification
Refinement-based CFG reconstruction from unstructured programs
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Interprocedural control flow reconstruction
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
OSMOSE: automatic structural testing of executables
Software Testing, Verification & Reliability
A decade of software model checking with SLAM
Communications of the ACM
Finding and understanding bugs in C compilers
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Runtime Verification for LTL and TLTL
ACM Transactions on Software Engineering and Methodology (TOSEM)
Sampling-based runtime verification
FM'11 Proceedings of the 17th international conference on Formal methods
Past time LTL runtime verification for microcontroller binary code
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
Precise control flow reconstruction using boolean logic
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Real time temporal logic: past, present, future
FORMATS'05 Proceedings of the Third international conference on Formal Modeling and Analysis of Timed Systems
Java-MOP: a monitoring oriented programming environment for java
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
The static driver verifier research platform
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Automated test-trace inspection for microcontroller binary code
RV'11 Proceedings of the Second international conference on Runtime verification
Algorithms for monitoring real-time properties
RV'11 Proceedings of the Second international conference on Runtime verification
Runtime verification for ultra-critical systems
RV'11 Proceedings of the Second international conference on Runtime verification
Hi-index | 0.00 |
Runtime verification bridges the gap between formal verification and testing by providing techniques and tools that connect executions of a software to its specification without trying to prove the absence of errors. This article presents a framework for runtime verification of microcontroller binary code, which provides the above mentioned link in a non-intrusive fashion: the framework neither requires code instrumentation nor does it affect the execution of the analyzed program. This is achieved using a dedicated hardware unit that runs on a field programmable gate array in parallel to the analyzed microcontroller program. Different instances of this framework are discussed, with varying degrees of expressiveness of the supported specification languages and complexity in the hardware design. These instances range from invariant checkers for a restricted class of linear template constraints to a programmable processor that supports past-time linear temporal logic with timing constraints.