osverifydb [options] pathname
pathnameSpecifies a file or rawfs database whose pointers you want to verify.
The osverifydb utility runs integrity checks to ensure that the ObjectStore collections in the database are valid. You can suppress verification of collections by specifying the -nocoll option when you run osverifydb.
You would not normally include the -ignore_references option unless you had already tried to verify the database and verification failed because the utility ran out of address space.
err_schema_key _CT_invalid_schema_key, "<err-0025-0151> The schema is protected and the key provided did not match the one in the schema."
osverifydb -all -illegal_pointer_action null vtest1.dbThe null argument causes osverifydb to null all illegal pointers.
osverifydb -illegal_pointer_action ask vtest2.dbThe ask argument permits selective repair; that is, it causes osverifydb to prompt for an alternative value for the illegal pointer in the format used by os_reference::load(). Following is sample output from osverifydb in such a circumstance:
The object at 0x6020000 (</daffy/home/daffy/daffy0/dbs/verifydb1 | 2 | 0>)(type "c1"), contains a pointer at 0x6020000(c1.m1) with the illegalYou can then press Enter, in which case the illegal pointer is set to null, or you can enter a valid reference string such as /daffy/home/daffy/daffy0/dbs/verifydb1 | 2 | 64 identifying an object at offset 64 in segment 2, in the database verifydb1. The new pointer value, if valid, is used as the replacement value for the pointer in the database.
value 0x1. It points to nonpersistent storage. Enter replacement pointer value in reference dump format (<database path | segment number | hex offset>:
The following output is the result of running osverifydb on a database that contains an object of type c1, with the bad pointers identified by the error messages.
beethoven% osverifydb /camper/van
Verifying database beethoven::/camper/van Verifying segment 2 Size: 8192 bytes Pointer to nonpersistent storage. Pointer Location: 0x6010000. Contents: 0x1. Lvalue expression for pointer: c1::m1 Pointer type mismatch; the declared type is incompatible with the actual type of the object Pointer Location: 0x6010004. Contents: 0x601003c. Declared type c2*. Actual type: c3*. Lvalue expression for pointer: c1::m2 Pointer to deleted storage Pointer Location: 0x6010008. Contents: 0x6010040. Declared type c2*. Lvalue expression for pointer: c1::m3 Pointer type mismatch; the declared type is incompatible with the actual type of the object Pointer Location: 0x601000c. Contents: 0x6010028. Declared type c2*. Actual type: c1*. Lvalue expression for pointer: c1::m4 Lvalue expression for pointed to object: c1::ma[5] Pointer type mismatch; the declared type is incompatible with the actual type of the object Pointer Location: 0x6010010. Contents: 0x6010044. Declared type c2*. Actual type: char*. Lvalue expression for pointer: c1::m5 Lvalue expression for pointed to object: char[0] Pointer to nonpersistent storage. Pointer Location: 0x6010068. Contents: 0x1. Lvalue expression for pointer: void*[5] Verified 5 objects in segment Verified 5 objects in database beethoven%
Updated: 03/11/99 11:19:07