嗨,我正在尝试创建某种调试器,该调试器会查看系统调用以检测它们,但是从可用性的角度来看,我希望能够获得检测到错误的源代码名称和行号。我一直在使用名为libunwind的库,但它为我提供了函数名称,与函数的偏移量以及可执行文件地址空间中的程序计数器。但是,如果您查看valgrind或gdb,则在使用-g标志进行编译时,它会为您提供行号和源代码名称。我该怎么办?
虽然我不知道具体如何工作,但我可以分享我在寻求帮助时发现的一些资源。这些都集中在调试器的工作方式上,因为这将是使自己工作的最好方法:https://eli.thegreenplace.net/2011/01/23/how-debuggers-work-part-1