diff options
| author | Simone Weiß <simone.weiss@elektrobit.com> | 2024-04-15 14:30:03 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-04-22 08:46:42 +0000 |
| commit | 36c961ad9dc0e5b72efc784a57717424a02bfa00 (patch) | |
| tree | da60380de7d0a95724187e8d4866071503d81ce1 | |
| parent | af24b0505c748561efb50f1d03c824d6642f6c0b (diff) | |
tools/syz-db: add more usage info for syz-db
Add some short notes on how syz-db can also be used manually.
Signed-off-by: Simone Weiß <simone.weiss@elektrobit.com>
| -rw-r--r-- | docs/db.md | 59 | ||||
| -rw-r--r-- | tools/syz-db/syz-db.go | 23 |
2 files changed, 77 insertions, 5 deletions
diff --git a/docs/db.md b/docs/db.md new file mode 100644 index 000000000..e77daee59 --- /dev/null +++ b/docs/db.md @@ -0,0 +1,59 @@ +# syz-db + +`syz-db` program can be used to manipulate corpus.db databases that are used +by syz-managers. + +## Build + +Build `syz-db` with `make db` or by changing to `tools/syz-db` and run `go build`. + +## Options + +`syz-db` currently overs the following generic arguments: + +```shell + -arch string + target arch + -os string + target OS + -version uint + database version + -vv int + verbosity +``` + +That can be used with + +``` + syz-db pack dir corpus.db +``` + +to pack a database + +``` + syz-db unpack corpus.db dir +``` + +to unpack a database. A file containing performed syscalls will be returned. + +``` + syz-db merge dst-corpus.db add-corpus.db* add-prog* +``` + +to merge databases. No additional file will be created: The first file will be replaced by the merged result. + +``` + syz-db bench corpus.db +``` + +to run a deserialization benchmark. For example: + +``` +syz-db -os=linux -arch=amd64 bench corpus.db +``` + +could give an output like + +``` +allocs 123 MB (123 M), next GC 123 MB, sys heap 123 MB, live allocs 123 MB (123 M), time 324s. +``` diff --git a/tools/syz-db/syz-db.go b/tools/syz-db/syz-db.go index 8d261307a..47ecc62bb 100644 --- a/tools/syz-db/syz-db.go +++ b/tools/syz-db/syz-db.go @@ -73,11 +73,24 @@ func main() { } func usage() { - fmt.Fprintf(os.Stderr, "usage:\n") - fmt.Fprintf(os.Stderr, " syz-db pack dir corpus.db\n") - fmt.Fprintf(os.Stderr, " syz-db unpack corpus.db dir\n") - fmt.Fprintf(os.Stderr, " syz-db merge dst-corpus.db add-corpus.db* add-prog*\n") - fmt.Fprintf(os.Stderr, " syz-db bench corpus.db\n") + fmt.Fprintf(os.Stderr, `usage: syz-db can be used to manipulate corpus +databases that are used by syz-managers. The following generic arguments are +offered: + -arch string + -os string + -version uint + -vv int + + they can be used for: + packing a database: + syz-db pack dir corpus.db + unpacking a database. A file containing performed syscalls will be returned: + syz-db unpack corpus.db dir + merging databases. No additional file will be created: The first file will be replaced by the merged result: + syz-db merge dst-corpus.db add-corpus.db* add-prog* + running a deserialization benchmark: + syz-db bench corpus.db +`) os.Exit(1) } |
