| 523 | } |
| 524 | |
| 525 | void |
| 526 | dprintf_setup(int *argc, char **argv) |
| 527 | { |
| 528 | int i, j; |
| 529 | |
| 530 | /* |
| 531 | * Debugging can be specified two ways: by setting the |
| 532 | * environment variable ZFS_DEBUG, or by including a |
| 533 | * "debug=..." argument on the command line. The command |
| 534 | * line setting overrides the environment variable. |
| 535 | */ |
| 536 | |
| 537 | for (i = 1; i < *argc; i++) { |
| 538 | int len = strlen("debug="); |
| 539 | /* First look for a command line argument */ |
| 540 | if (strncmp("debug=", argv[i], len) == 0) { |
| 541 | dprintf_string = argv[i] + len; |
| 542 | /* Remove from args */ |
| 543 | for (j = i; j < *argc; j++) |
| 544 | argv[j] = argv[j+1]; |
| 545 | argv[j] = NULL; |
| 546 | (*argc)--; |
| 547 | } |
| 548 | } |
| 549 | |
| 550 | if (dprintf_string == NULL) { |
| 551 | /* Look for ZFS_DEBUG environment variable */ |
| 552 | dprintf_string = getenv("ZFS_DEBUG"); |
| 553 | } |
| 554 | |
| 555 | /* |
| 556 | * Are we just turning on all debugging? |
| 557 | */ |
| 558 | if (dprintf_find_string("on")) |
| 559 | dprintf_print_all = 1; |
| 560 | |
| 561 | if (dprintf_string != NULL) |
| 562 | zfs_flags |= ZFS_DEBUG_DPRINTF; |
| 563 | } |
| 564 | |
| 565 | /* |
| 566 | * ========================================================================= |