debug.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Dropbear - a SSH2 server
  3. *
  4. * Copyright (c) 2002,2003 Matt Johnston
  5. * All rights reserved.
  6. *
  7. * Permission is hereby granted, free of charge, to any person obtaining a copy
  8. * of this software and associated documentation files (the "Software"), to deal
  9. * in the Software without restriction, including without limitation the rights
  10. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11. * copies of the Software, and to permit persons to whom the Software is
  12. * furnished to do so, subject to the following conditions:
  13. *
  14. * The above copyright notice and this permission notice shall be included in
  15. * all copies or substantial portions of the Software.
  16. *
  17. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  22. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  23. * SOFTWARE. */
  24. #ifndef DROPBEAR_DEBUG_H_
  25. #define DROPBEAR_DEBUG_H_
  26. #include "includes.h"
  27. /* Debugging */
  28. /* Work well for valgrind - don't clear environment, be nicer with signals
  29. * etc. Don't use this normally, it might cause problems */
  30. /* #define DEBUG_VALGRIND */
  31. /* Define this to compile in trace debugging printf()s.
  32. * You'll need to run programs with "-v" to turn this on.
  33. *
  34. * Caution: Don't use this in an unfriendly environment (ie unfirewalled),
  35. * since the printing may not sanitise strings etc. This will add a reasonable
  36. * amount to your executable size. */
  37. /*#define DEBUG_TRACE*/
  38. /* All functions writing to the cleartext payload buffer call
  39. * CHECKCLEARTOWRITE() before writing. This is only really useful if you're
  40. * attempting to track down a problem */
  41. /*#define CHECKCLEARTOWRITE() assert(ses.writepayload->len == 0 && \
  42. ses.writepayload->pos == 0)*/
  43. #define CHECKCLEARTOWRITE()
  44. /* Define this, compile with -pg and set GMON_OUT_PREFIX=gmon to get gmon
  45. * output when Dropbear forks. This will allow it gprof to be used.
  46. * It's useful to run dropbear -F, so you don't fork as much */
  47. /* (This is Linux specific) */
  48. /*#define DEBUG_FORKGPROF*/
  49. /* A couple of flags, not usually useful, and mightn't do anything */
  50. /*#define DEBUG_KEXHASH*/
  51. /*#define DEBUG_RSA*/
  52. /* you don't need to touch this block */
  53. #ifdef DEBUG_TRACE
  54. #define TRACE(X) dropbear_trace X;
  55. #define TRACE2(X) dropbear_trace2 X;
  56. #else /*DEBUG_TRACE*/
  57. #define TRACE(X)
  58. #define TRACE2(X)
  59. #endif /*DEBUG_TRACE*/
  60. /* To debug with GDB it is easier to run with no forking of child processes.
  61. You will need to pass "-F" as well. */
  62. /* #define DEBUG_NOFORK */
  63. /* For testing as non-root on shadowed systems, include the crypt of a password
  64. * here. You can then log in as any user with this password. Ensure that you
  65. * make your own password, and are careful about using this. This will also
  66. * disable some of the chown pty code etc*/
  67. /* #define DEBUG_HACKCRYPT "hL8nrFDt0aJ3E" */ /* this is crypt("password") */
  68. #endif