问题标签 [arc-architecture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 从信号处理程序上下文中获取 ARC 平台的回溯
我想SIGSEGV
在程序退出之前在日志中捕获并打印回溯。这是为了在稍后的时间点分析崩溃。我正在开发一个在多个平台上运行的软件。在 x86 平台上,我可以使用 glibcbacktrace()
函数轻松完成此操作。但同样不适用于 MIPS 和 ARC 平台。我能够打印 MIPS 架构的回溯,如此处所述
我也想为ARC 平台做类似的事情。如果有人可以提供一些关于我在哪里可以获得类似详细信息的数据点,那将是非常有帮助的。
编辑:
经过一番研究,我发现在函数调用的 ARC 平台中,堆栈不是一次分配的,而是部分分配的。(如果我错了,请纠正我。我通过对象转储并弄清楚了这一点。)所以我觉得在这种情况下,与 MIPS 相比,很难进行二进制代码解析。
另一种方法是在 C 中编写一些内联汇编并获取堆栈指针、帧指针和分支链接寄存器内容(闪烁),然后尝试使用堆栈和帧大小以及每帧中的闪烁值来展开堆栈。但我无法找到框架大小。
这是获取 FP、SP、BLINK 的示例代码。
是的,这不是好的编码!我做了很多假设。但对我来说,只要它在我的板上工作就很好。:)
任何帮助将不胜感激。这是关于 ARC gcc 的另一个参考资料。
if-statement - 我需要在 ARC 汇编语言中实现以下代码段
这就是我的 Arc 汇编代码。我对此相当陌生,所以我不太确定如何将 if/else 语句转换为汇编代码。
parsing - 解析汇编语言和高级编程语言有区别吗?
在学校,我们学习了 ARC 汇编语言。Miles Murdocca 在《计算机体系结构原理》一书中使用它来教授计算机体系结构。ARC 程序如下所示:
我想为该语言手写一个解析器,但很难将我关于解析器的基本知识应用到汇编语言中。例如,我无法绕开汇编程序的抽象语法树。
有人可以指出解析高级语言和汇编语言或汇编代码的区别吗?