您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

112 行
5.3KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Free Software" and "Free Software Needs
  8. Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
  9. and with the Back-Cover Texts as in (a) below.
  10. (a) The FSF's Back-Cover Text is: "You are free to copy and modify
  11. this GNU Manual. Buying copies from GNU Press supports the FSF in
  12. developing GNU and promoting software freedom." -->
  13. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  16. <title>Tracepoint Conditions (Debugging with GDB)</title>
  17. <meta name="description" content="Tracepoint Conditions (Debugging with GDB)">
  18. <meta name="keywords" content="Tracepoint Conditions (Debugging with GDB)">
  19. <meta name="resource-type" content="document">
  20. <meta name="distribution" content="global">
  21. <meta name="Generator" content="makeinfo">
  22. <link href="index.html#Top" rel="start" title="Top">
  23. <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
  24. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  25. <link href="Set-Tracepoints.html#Set-Tracepoints" rel="up" title="Set Tracepoints">
  26. <link href="Trace-State-Variables.html#Trace-State-Variables" rel="next" title="Trace State Variables">
  27. <link href="Tracepoint-Passcounts.html#Tracepoint-Passcounts" rel="prev" title="Tracepoint Passcounts">
  28. <style type="text/css">
  29. <!--
  30. a.summary-letter {text-decoration: none}
  31. blockquote.indentedblock {margin-right: 0em}
  32. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  33. blockquote.smallquotation {font-size: smaller}
  34. div.display {margin-left: 3.2em}
  35. div.example {margin-left: 3.2em}
  36. div.lisp {margin-left: 3.2em}
  37. div.smalldisplay {margin-left: 3.2em}
  38. div.smallexample {margin-left: 3.2em}
  39. div.smalllisp {margin-left: 3.2em}
  40. kbd {font-style: oblique}
  41. pre.display {font-family: inherit}
  42. pre.format {font-family: inherit}
  43. pre.menu-comment {font-family: serif}
  44. pre.menu-preformatted {font-family: serif}
  45. pre.smalldisplay {font-family: inherit; font-size: smaller}
  46. pre.smallexample {font-size: smaller}
  47. pre.smallformat {font-family: inherit; font-size: smaller}
  48. pre.smalllisp {font-size: smaller}
  49. span.nolinebreak {white-space: nowrap}
  50. span.roman {font-family: initial; font-weight: normal}
  51. span.sansserif {font-family: sans-serif; font-weight: normal}
  52. ul.no-bullet {list-style: none}
  53. -->
  54. </style>
  55. </head>
  56. <body lang="en">
  57. <a name="Tracepoint-Conditions"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Trace-State-Variables.html#Trace-State-Variables" accesskey="n" rel="next">Trace State Variables</a>, Previous: <a href="Tracepoint-Passcounts.html#Tracepoint-Passcounts" accesskey="p" rel="prev">Tracepoint Passcounts</a>, Up: <a href="Set-Tracepoints.html#Set-Tracepoints" accesskey="u" rel="up">Set Tracepoints</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
  61. </div>
  62. <hr>
  63. <a name="Tracepoint-Conditions-1"></a>
  64. <h4 class="subsection">13.1.4 Tracepoint Conditions</h4>
  65. <a name="index-conditional-tracepoints"></a>
  66. <a name="index-tracepoint-conditions"></a>
  67. <p>The simplest sort of tracepoint collects data every time your program
  68. reaches a specified place. You can also specify a <em>condition</em> for
  69. a tracepoint. A condition is just a Boolean expression in your
  70. programming language (see <a href="Expressions.html#Expressions">Expressions</a>). A
  71. tracepoint with a condition evaluates the expression each time your
  72. program reaches it, and data collection happens only if the condition
  73. is true.
  74. </p>
  75. <p>Tracepoint conditions can be specified when a tracepoint is set, by
  76. using &lsquo;<samp>if</samp>&rsquo; in the arguments to the <code>trace</code> command.
  77. See <a href="Create-and-Delete-Tracepoints.html#Create-and-Delete-Tracepoints">Setting Tracepoints</a>. They can
  78. also be set or changed at any time with the <code>condition</code> command,
  79. just as with breakpoints.
  80. </p>
  81. <p>Unlike breakpoint conditions, <small>GDB</small> does not actually evaluate
  82. the conditional expression itself. Instead, <small>GDB</small> encodes the
  83. expression into an agent expression (see <a href="Agent-Expressions.html#Agent-Expressions">Agent Expressions</a>)
  84. suitable for execution on the target, independently of <small>GDB</small>.
  85. Global variables become raw memory locations, locals become stack
  86. accesses, and so forth.
  87. </p>
  88. <p>For instance, suppose you have a function that is usually called
  89. frequently, but should not be called after an error has occurred. You
  90. could use the following tracepoint command to collect data about calls
  91. of that function that happen while the error code is propagating
  92. through the program; an unconditional tracepoint could end up
  93. collecting thousands of useless trace frames that you would have to
  94. search through.
  95. </p>
  96. <div class="smallexample">
  97. <pre class="smallexample">(gdb) <kbd>trace normal_operation if errcode &gt; 0</kbd>
  98. </pre></div>
  99. </body>
  100. </html>