You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-10Lines changed: 3 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ ChroniclerJ [Chronicler implemented in Java]
6
6
7
7
**ChroniclerJ** is a system for recording buggy program executions in the field and reproducing them in the lab. **ChroniclerJ** is our Java implementation of **Chronicler**, a generalized record and replay approach for VM-based languages.
8
8
9
-
This repository contains the source and a [runnable binary](https://github.com/Programming-Systems-Lab/chroniclerj/blob/master/chroniclerj-0.4.1.jar)for **ChroniclerJ**.
9
+
This repository contains the source for **ChroniclerJ**. You can build it using `mvn package`.
10
10
11
11
###For more information
12
12
Please see our Technical Report:
@@ -17,7 +17,7 @@ Running
17
17
### Instrumenting your code
18
18
Before deploying your code, you need to run the **ChroniclerJ** instrumenter, which will produce two copies of your program: one for deployment (with logging code), and one for replay purposes (with code that reads back from the log).
19
19
20
-
To run the instrumenter, use the command `java -jar chroniclerj-0.4.1.jar -instrument {-mxLogN} input ouputLocationDeploy outputLocationReplay`, where:
20
+
To run the instrumenter, use the command `java -jar chroniclerj.jar -instrument {-mxLogN} input ouputLocationDeploy outputLocationReplay`, where:
21
21
*`{-mxLogN}` is an optional parameter indiciating that at most `N` items should be stored in the in-memory logfile before it is flushed to disk
22
22
*`input` is the path that contains the .class files, .jar files, etc that need to be instrumented (e.g. what you would be deploying normally)
23
23
*`outputLocationDeploy` is where you would like the generated code (for deployment) to be placed
@@ -31,17 +31,10 @@ Deploy your code as you normally would, but deploy the code that was instrumente
31
31
When an uncaught exception ocurrs, **ChroniclerJ** generates a test case. You can manually invoke this process (e.g. from your own exception handler) by calling the method `ChroniclerJExceptionRunner.genTestCase()`. Users are notified that a test case was generated, which is placed in the current working directory and has the name format chroniclerj-crash-*currenttime*.test. The test case file contains all logs necessary to replay the execution.
32
32
33
33
### Replaying test cases
34
-
To replay the failed executions, run the command `java -jar chroniclerj-0.4.1.jar -replay testCase {classpath}`, where
34
+
To replay the failed executions, run the command `java -jar chroniclerj.jar -replay testCase {classpath}`, where
35
35
*`testCase` is the test case to run
36
36
*`{classpath}` is a space-delimited classpath passed to your program when it starts to replay
37
37
38
-
Building
39
-
-----
40
-
**ChroniclerJ** is an eclipse project, and should simply be added to eclipse, and built as a Java project.
41
-
42
-
###Packaging
43
-
To create the **ChroniclerJ** jar, first run the `unpackLibs.sh` command to unpack the libraries that **ChroniclerJ** depends on, then `makeJar.sh` to generate a jar file with **ChroniclerJ** and its libraries embedded.
0 commit comments