- Dec 11, 2013
-
-
Michael Lenz authored
"removed" unneccessary memory-mapping ("Step 0") cleaned out ExperimentData - now consists only of fsppilot and resultset resultset now contains bitoffset which is part of result-table's primary key adapted code to work with msg.fsppilot() instead of ExperimentData-values Change-Id: I3b310e7a71d4b28479028250cd5722b3b2ce9f8c
-
- Dec 06, 2013
-
-
Martin Hoffmann authored
-
- Dec 05, 2013
-
-
Horst Schirmeier authored
Although we know that a known_outcome=1 pilot does not exhibit behavior different from the golden run, the database schema does not yet know what this behavior looks like (in terms of result-table column values). In order to be able to JOIN valid results for all memory writes in the trace table (fspgroup maps them all onto *one* pilot per variant), we need to run these experiments, too. Additionally, don't join the fspgroup table; we only need this one for result calculations afterwards. Change-Id: Idcd2991274fede84526b1eee68a231774625d11a
-
- Dec 04, 2013
-
-
Lars Rademacher authored
As non-gzipped trace files cause import-trace to always import zero events, the input file is now openend as in the dump-trace tool, where opening non-gzipped files obviously works fine. In the medium term we should find a centralized solution for this, instead of re-implementing it all over the place. Change-Id: I75845c03c0bbdc2b6b578b83d492b7dbbb40f051
-
- Nov 18, 2013
-
-
Horst Schirmeier authored
With the recent updates to record one additional instruction at the trace start, I broke memory-map handling (restrictMemoryAddresses() and restrictInstructionAddresses()). This change repairs this functionality. Change-Id: I0daf9f474d0efe3f8e30a168c0ccc1e993e7ddc6
-
- Nov 13, 2013
-
-
Richard Hellwig authored
-
Richard Hellwig authored
The function restore(PATH) can now be used to restore a checkpoint. Change-Id: I25faf9f6335261d2b3ade4185eae93983ece9f97
-
Richard Hellwig authored
-
- Nov 11, 2013
-
-
Martin Hoffmann authored
Sorry, for the small changesets. Change-Id: I12e7b1b4efff0c63020613e399f8185ace97aec7
-
Martin Hoffmann authored
Change-Id: I1172e0c60e2d6e895b4d3f99eb1a023c348bd3b3
-
Martin Hoffmann authored
Change-Id: I3e5b8c6e60b57e6ec03500e9ee109fd5fb322cb2
-
Martin Hoffmann authored
Listens on a configurable SUT's global variable. On read access a signal pattern value is calculated and sent back to the SUT. Currently, only a superimposable sine wave signal form is implemented. Further signal forms can be implemented by inheriting from the abstract SignalForm class. Change-Id: I2e6cf49cd44797999691c9e9cf0c54dd3c96875e
-
Martin Hoffmann authored
Logs access to a given global variable of the SUT, given by a symbol name, and outputs value when variable is written to file. Format: <Simulation time>;<Value of variable> Change-Id: I81b581e571be4255a1a2200c41e7c16657ddfd3d
-
- Nov 06, 2013
-
-
Bjoern Doebel authored
Add two new breakpoints to L4Sys experiment that allow detecting that execution terminated with an error: vga_console_blink() is called by the kernel if JDB was entered (meaning we are hanging, e.g., due to an assertion); also longjmp() is only used by PF handling code after no valid page fault handling could be performed Change-Id: Ice61039c4bd07815a316bbc0bdb39f3483d9a1da
-
Bjoern Doebel authored
* after injecting a fault, track how many instructions it takes until execution deviates from original execution * also track what the first deviating EIP value is Change-Id: I18a9250517ca90214728c2c4b036b412f5dbf224
-
Bjoern Doebel authored
Change-Id: I972be71af70934eef98bc67b27e32a98ecb8be3b
-
Bjoern Doebel authored
Change-Id: Iea2228d8bafc2a3ecb4b6e26e2552813821a3d0b
-
Bjoern Doebel authored
no need to decrement instruction offset before setting bp anymore Change-Id: I7f9c02349663899fa8f496a46bcb357bd567ac5c
-
Bjoern Doebel authored
experiment.hpp is parsed before l4sys.ph.h is generated -> remove dependency Change-Id: I128108e562877caca732ad43fdb65b12e56951f8
-
- Nov 01, 2013
-
-
Richard Hellwig authored
Before, it was not possible to add registers in arbitrary order. Change-Id: I952c03ea4339da2cdaf34bd4546c76c33cecd4cd
-
- Oct 28, 2013
-
-
Horst Schirmeier authored
-
Christian Dietrich authored
When a register in the extended trace was dereferenced and the value was smaller than the memory pool size, but the address was not mapped an assertion occured and the tracing plugin terminated the simulator. Now the dereferenced memory address is checked for being mapped and not being smaller than the memory pool. Change-Id: I9ac954988ef860969679f9f360814c5e4b66f473
-
- Oct 24, 2013
-
-
Christian Dietrich authored
The ElfImporter is not a real trace importer, but we locate it into the import-trace utility, since here the infrastructure is already in place to import things related to an elf binary into the database. The ElfImporter calls objdump and dissassembles an elf binary and imports the results into the database. Change-Id: I6e35673c8dbee3b7e8dfc7549d10e5dca9b55935
-
- Oct 23, 2013
-
-
Horst Schirmeier authored
-
- Oct 21, 2013
-
-
Bjoern Doebel authored
Change-Id: I86b27aae6fa30992b485af79e767ec23949d1e62
-
Bjoern Doebel authored
Change-Id: Iebbc0309695ee6a7bb8c68fd6ffa24b73ffd7ee5
-
Bjoern Doebel authored
* introduce L4SYS_ADDRESS_SPACE_TRACE to indicate that we want to trace instructions in a different AS from the one we are starting the experiment in * add CR3Run() to determine address space ID Change-Id: I7bdaf1e858a6dd369af5175bd56e1b4e2d5f05ef
-
Bjoern Doebel authored
Change-Id: I7966f97b8c09bbd6510ca6066dd40be398b54de3
-
- Oct 17, 2013
-
-
Horst Schirmeier authored
The internal m_iponly / m_memonly bools are a bit hackish; especially it's unclear what should happen if both are set. The m_tracetype enum now encompasses all possible configurations, while the plugin's user interface remains unchanged. Change-Id: Ibdd872b5cc5781836428b27bfb2db3825700e671
-
Horst Schirmeier authored
This change implements what the source-code comment already promised but didn't keep: As we only record time deltas instead of absolute time values, prevtime must not be overwritten unless the current delta was really added to the trace. This has caused timing information to be stored incorrectly if certain events were skipped (e.g., because they didn't match the memory map configured by the user). Change-Id: Id40271d117dd91b1122136c62329d64174f304b0
-
Horst Schirmeier authored
Richard noticed that instr2 values are off by one when done with the MemoryImporter vs. with his own importer. The core problem is that the dynamic instruction counter in the Importer base class (Importer::copy_to_database, instruction_count_t instr) gets increased *after* reporting an IP event to the importer implementation; this has the side-effect that memory access events have a +1 dynamic instruction count offset with regard to the IP event of the instruction they belong to. Bottom line: IP events and all memory events belonging to that instruction should have the same dynamic instruction number. Christian argued for the numbers starting with 0, which, as a side effect, relativizes the repercussions of the change introduced in the previous commit, as the new "first" event gets the sequence number 0 now. - All experiments and importers only dealing with memory accesses (MemoryImporter) are affected by this change: The dynamic instruction count now starts with 0 instead of 1. Together with the previous commit, the only change is one additional dynamic instruction at position 0. Note that existing trace files do not have this additional instruction, which shifts all trace positions by 1. - All importers that process *only* IP events (InstructionImporter, RandomJumpImporter, RegisterImporter) won't see any difference. Commit 036e340b, though, introduced a +1 offset. - Experiments that use these instruction counts for navigating to the target instruction must be checked to properly deal with the dynamic instruction #0 (no forwarding necessary). All dynamic instruction offsetting should now work uniformly for both memory accesses and all other fault models. To be sure everything works in order, sanity-check the current absolute instruction pointer right before fault injection. Change-Id: I3f509f1b47836fa78fd029a7bb7c36c878912d97
-
Horst Schirmeier authored
When starting the tracing plugin (simulator.addFlow()), at the moment the *current* dynamic instruction (e.g., the one the start symbol points to) is skipped, and tracing commences with the second instruction. This change records an additional instruction event at the trace begin. Note that this change affects all tracing-plugin users. The first event gets recorded when starting the plugin (simulator.addFlow()). This avoids compatibility/off-by-one issues when recording traces with the generic-tracing experiment vs. with custom experiments. Change-Id: Ic24e17a68b8a44edad3be994e9edd6d6712bfda1
-
Horst Schirmeier authored
This reverts commit 036e340b. Problems with this one were: - Broken event timings. m_prevtime wasn't reset to m_curtime in TracingPlugin::handleSingleIP(), resulting in a large deltatime being recorded for the second event, too. This effectively doubled the experiment's start time. - Code repetition (copy/pasted for special handling of first event), making planned changes (advanced tracing for IP events) more difficult. - Unnecessary additional tracing-plugin interface method. Change-Id: I4b74d1a3f4563aabe6626399f9b30a2171b4c285
-
Martin Hoffmann authored
Change-Id: I7a7e7e658b4b86f1e319c58d7595d031f71cb4fd
-
- Oct 14, 2013
-
-
Horst Schirmeier authored
Without this change, import-trace won't recognize, e.g., the -e and -t parameters if they come after a parameter that was added by the Importer: import-trace -i objdump --objdump arm-none-eabi-objdump -e B.elf -t C.tc [...] [import-trace 14:37:32] couldn't open trace.pb Change-Id: I9532b01e432055479c79d801b1ca2736a8fd21cc
-
- Sep 19, 2013
-
-
Christian Dietrich authored
When using the generic-tracing experiment for generating a trace, the first event, after the tracing is started (the start-symbol) is lost in the trace. This patch handles this special case seperately. Change-Id: Ia131a8559d67161532504160826fdb100247ed75
-
Christian Dietrich authored
Change-Id: Icae29d819e4cbebc26e441a6daf74f9abafdb3ad
-
Martin Hoffmann authored
-
Martin Hoffmann authored
Call this script from a build directory to setup a build environment for FailBochs pruning. Usage: <path to fail>/configurations/x86_pruning.sh <Experiment name> Change-Id: I778a20c258dcd5349c3da9e1c5a8542af43f61d5
-
- Sep 18, 2013
-
-
Horst Schirmeier authored
"std::vector<T>::size_type" is compatible to "unsigned int" on ia32, but not on amd64. Change-Id: I7d0f96780f7c17757dcfd015a1b3f9d5a3947f1a
-