|
|
1
2
我使用过一个有类似需求的系统(ARM嵌入式设备)。我们不得不从头开始构建它,但是我们使用了一些CodeWarrior的东西来完成它,然后使用映射文件来查找函数名。 使用CodeWarrior,您可以将一些代码插入到每个函数的开头和结尾,并使用该代码跟踪何时进入每个函数以及何时切换线程。我们用的是组装,你可能也需要,但这比你想象的要容易。您的寄存器之一将是您的返回值,这是一个十六进制值。如果使用映射文件编译,则可以使用该十六进制值查找该函数的(损坏的)名称。您可以在函数名中找到类名。
输入的函数#####
切换到线程# (PS-实际编码应该更像1 21361987236,2 1238721312,因为您实际上不想发送字符)
如果你真的在运行多个线程,它可能会变得更难,或者更相似-我不知道。我会把时间信息放在每件事上,然后为每个线程提供一个单独的流。尽管您可能只是能够检测到您正在哪个处理器上运行,并报告它,对于哪个线程。。。。不过,我不知道这是否管用。 不过,基本的想法是:报告每个步骤(函数进入/退出、线程切换和分配),然后在桌面端重新组装您关心的信息,在那里您有多余的处理。 |
|
|
2
1
海湾合作委员会 PRETTY_FUNCTION 定义。关于线程,您可以随时调用 gettid 或者类似的。 |
|
|
3
1
我已经编写了一些日志系统,它们只是增加一个线程并存储在线程本地数据中。这有助于给出日志语句的线程(时间很容易打印出来)
用于跟踪
函数自动调用,我不太确定。如果只是几个,您可以轻松地编写一个对象&使用
|
|
|
Abdullah Chaudhry · json文件上的文件旋转和删除 2 年前 |
|
|
Max S · 如何从CMD读取日志的所有输出 8 年前 |
|
|
Ivan Denchev · Apache-过去一小时的日志 8 年前 |
|
|
ninja.coder · Log4j中的字符串串联性能 8 年前 |
|
|
Rich · 如何记录日志。是否与操作员一起调试? 8 年前 |