创建任务分配错误和存储错误的简单示例
create a simple example of tasking error and storage error
我需要一些简单的 Ada 代码来测试我的 "system"。为了测试它,我需要一些引发 存储错误 和 任务错误 的代码示例(我知道通常会避免它们,但我需要来模拟这个问题)。我知道这似乎是一个基本要求,但我对 ada 编码有点陌生,我发现解决这些任务有点困难。我试图在互联网上搜索合适的解决方案,但所有解决方案都不能满足我的需要(或者太具体或错误)。我正在搜索的是创建一个 .adb 和 function/procedure 引发这两个错误。
我希望您对这两个错误的不同程序感到满意?
对于Storage_Error
,
procedure Storage is
procedure Recursive is
begin
Recursive;
end Recursive;
begin
Recursive;
end Storage;
以及 Tasking_Error
、
procedure Tasking is
task T is
entry E;
end T;
task body T is
begin
null;
end;
begin
delay 0.01;
T.E;
end Tasking;
这会引发异常,因为当主程序调用 T.E
时,那里根本没有任务。要探索这一点,请将 null;
替换为例如delay 5.0;
- 程序在异常终止前等待 5 秒。
我需要一些简单的 Ada 代码来测试我的 "system"。为了测试它,我需要一些引发 存储错误 和 任务错误 的代码示例(我知道通常会避免它们,但我需要来模拟这个问题)。我知道这似乎是一个基本要求,但我对 ada 编码有点陌生,我发现解决这些任务有点困难。我试图在互联网上搜索合适的解决方案,但所有解决方案都不能满足我的需要(或者太具体或错误)。我正在搜索的是创建一个 .adb 和 function/procedure 引发这两个错误。
我希望您对这两个错误的不同程序感到满意?
对于Storage_Error
,
procedure Storage is
procedure Recursive is
begin
Recursive;
end Recursive;
begin
Recursive;
end Storage;
以及 Tasking_Error
、
procedure Tasking is
task T is
entry E;
end T;
task body T is
begin
null;
end;
begin
delay 0.01;
T.E;
end Tasking;
这会引发异常,因为当主程序调用 T.E
时,那里根本没有任务。要探索这一点,请将 null;
替换为例如delay 5.0;
- 程序在异常终止前等待 5 秒。