hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2021 Free Software Foundation, Inc.
 
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Free Software" and "Free Software Needs
Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
and with the Back-Cover Texts as in (a) below.
 
(a) The FSF's Back-Cover Text is: "You are free to copy and modify
this GNU Manual.  Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Debugging with GDB: Ravenscar Profile</title>
 
<meta name="description" content="Debugging with GDB: Ravenscar Profile">
<meta name="keywords" content="Debugging with GDB: Ravenscar Profile">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Ada.html#Ada" rel="up" title="Ada">
<link href="Ada-Settings.html#Ada-Settings" rel="next" title="Ada Settings">
<link href="Ada-Tasks-and-Core-Files.html#Ada-Tasks-and-Core-Files" rel="previous" title="Ada Tasks and Core Files">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Ravenscar-Profile"></a>
<div class="header">
<p>
Next: <a href="Ada-Settings.html#Ada-Settings" accesskey="n" rel="next">Ada Settings</a>, Previous: <a href="Ada-Tasks-and-Core-Files.html#Ada-Tasks-and-Core-Files" accesskey="p" rel="previous">Ada Tasks and Core Files</a>, Up: <a href="Ada.html#Ada" accesskey="u" rel="up">Ada</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>
</div>
<hr>
<a name="Tasking-Support-When-Using-the-Ravenscar-Profile"></a>
<h4 class="subsubsection">15.4.10.9 Tasking Support When Using the Ravenscar Profile</h4>
<a name="index-Ravenscar-Profile"></a>
 
<p>The <em>Ravenscar Profile</em> is a subset of the Ada tasking features,
specifically designed for systems with safety-critical real-time
requirements.
</p>
<dl compact="compact">
<dd><a name="index-set-ravenscar-task_002dswitching-on"></a>
<a name="index-task-switching-with-program-using-Ravenscar-Profile"></a>
</dd>
<dt><code>set ravenscar task-switching on</code></dt>
<dd><p>Allows task switching when debugging a program that uses the Ravenscar
Profile.  This is the default.
</p>
<a name="index-set-ravenscar-task_002dswitching-off"></a>
</dd>
<dt><code>set ravenscar task-switching off</code></dt>
<dd><p>Turn off task switching when debugging a program that uses the Ravenscar
Profile.  This is mostly intended to disable the code that adds support
for the Ravenscar Profile, in case a bug in either <small>GDB</small> or in
the Ravenscar runtime is preventing <small>GDB</small> from working properly.
To be effective, this command should be run before the program is started.
</p>
<a name="index-show-ravenscar-task_002dswitching"></a>
</dd>
<dt><code>show ravenscar task-switching</code></dt>
<dd><p>Show whether it is possible to switch from task to task in a program
using the Ravenscar Profile.
</p>
</dd>
</dl>
 
<a name="index-Ravenscar-thread"></a>
<p>When Ravenscar task-switching is enabled, Ravenscar tasks are
announced by <small>GDB</small> as if they were threads:
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) continue
[New Ravenscar Thread 0x2b8f0]
</pre></div>
 
<p>Both Ravenscar tasks and the underlying CPU threads will show up in
the output of <code>info threads</code>:
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) info threads
  Id   Target Id                  Frame
  1    Thread 1 (CPU#0 [running]) simple () at simple.adb:10
  2    Thread 2 (CPU#1 [running]) 0x0000000000003d34 in __gnat_initialize_cpu_devices ()
  3    Thread 3 (CPU#2 [running]) 0x0000000000003d28 in __gnat_initialize_cpu_devices ()
  4    Thread 4 (CPU#3 [halted ]) 0x000000000000c6ec in system.task_primitives.operations.idle ()
* 5    Ravenscar Thread 0x2b8f0   simple () at simple.adb:10
  6    Ravenscar Thread 0x2f150   0x000000000000c6ec in system.task_primitives.operations.idle ()
</pre></div>
 
<p>One known limitation of the Ravenscar support in <small>GDB</small> is that
it isn&rsquo;t currently possible to single-step through the runtime
initialization sequence.  If you need to debug this code, you should
use <code>set ravenscar task-switching off</code>.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Ada-Settings.html#Ada-Settings" accesskey="n" rel="next">Ada Settings</a>, Previous: <a href="Ada-Tasks-and-Core-Files.html#Ada-Tasks-and-Core-Files" accesskey="p" rel="previous">Ada Tasks and Core Files</a>, Up: <a href="Ada.html#Ada" accesskey="u" rel="up">Ada</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>
</div>
 
 
 
</body>
</html>