我在使用这个变量声明时遇到了麻烦:
Code_Length at 0 range 18..20;
Run Code Online (Sandbox Code Playgroud)
我熟悉约束,但这at 0是给我适合的东西,我在其他地方找不到任何在线工作示例.
如果我不得不猜测(我完全猜测),at 0将值初始化为0,则在任何后续赋值操作上强制执行约束.但我找不到任何要验证的东西.
由于各种原因,我无法详细说明,但这里是我正在使用的基本架构
据我所知,Ada库(它是一个非常重要的代码集合)在边缘情况下产生异常,但是我在隔离产生异常的函数时遇到了麻烦.
这是我正在使用的:
这是我在正常执行下得到的错误:
terminate called without an active exception
raised PROGRAM_ERROR : unhandled signal
Run Code Online (Sandbox Code Playgroud)
我可以让gdb在返回到C++时立即捕获异常,但是我无法让它抓住Ada代码.我已确保编译所有内容-g,但这似乎没有帮助解决问题.
当我试图捕捉/打破信号/异常gdb(礼貌告诉我Catch of signal not yet implemented)时,我明白了:
[Thread debugging using libthread_db enabled]
[New thread -1208371520 (LWP 14568)]
terminate called without an active exception
Program received signal SIGABRT, Aborted.
[Switching to thread -1208371520 (LWP 14568)]
0x001327a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
Run Code Online (Sandbox Code Playgroud)
我相信这terminate called [...]条线来自框架.当我尝试捕获那个中断,然后运行一个backtrace(bt),我得到这样的东西:
#0 0x001327a2 in gdb …Run Code Online (Sandbox Code Playgroud)