- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将 addr2line
与存档文件一起使用 libdpdk.a
我有一个回溯:
backtrace returned: 7
0: 0x46fd05 ./build/ip_pipeline(bt+0x25) [0x46fd05]
1: 0x42a163 ./build/ip_pipeline() [0x42a163]
2: 0x46ff21 ./build/ip_pipeline(rte_eal_init+0x171) [0x46ff21]
3: 0x439629 ./build/ip_pipeline(app_init+0x709) [0x439629]
4: 0x42b3ff ./build/ip_pipeline(main+0x5f) [0x42b3ff]
5: 0x7f101166b830 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f101166b830]
6: 0x42d009 ./build/ip_pipeline(_start+0x29) [0x42d009]
我尝试了以下命令:
addr2line 0x46fd05 -f -e ../../build/lib/librte_eal.a
addr2line: ../../build/lib/librte_eal.a: cannot get addresses from archive
预期输出 应该是回溯中地址 0x46fd05
或 0x46fd05
的函数名称,具体取决于我传递的地址。目前没有与此地址关联的符号名称。
任何建议。
我已经使用 -rdynamic
编译了代码
最佳答案
撇开选择 .a/.so 的原因,'addr2line' 应该与执行的二进制文件一起使用。原因是回溯地址是特定于二进制文件的。
同一个静态(.a)库通常会被加载到不同的二进制文件中的不同地址。这对于“.so”(尤其是与位置无关的代码)是正确的 - 但在许多情况下,Linux 将尝试重用已经映射的“.so”文件,以便实际地址相同。
底线 - 来自手册页 - 使用可执行文件名称。
--exe=filename
Specify the name of the executable for which addresses should be translated.
The default file is a.out.
一些实际注意事项 - 当使用“.so”时 - 你想在具有相同可执行文件、共享对象和 LD_LIBRARY_PATH 的系统上执行 addr2line。如果您的开发和生产中存在不同的“.so”,则地址可能不匹配。
关于c - 带有存档文件的 addr2line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58364054/
我是集群新手。我看不出这两个选项之间的区别?我认为advertise addr被其他节点用来相互通信,listen addr被主机用来加入集群。所以我认为这两个地址永远是相同的。我说得对吗? 最佳答案
关于 Wireshark 中的过滤器,!(ip.addr == 192.0.2.1) 和 (ip.addr != 192.0.2.1) 有什么区别?检查结果时,结果不一样,我不知道为什么... 另外,
在 Ubuntu 16.04 中,我运行了 ifconfig 并在 inet addr:MY_IP 中看到了我的外部 IP。 我试图通过这些方式将它“挖掘”到一个变量中: ipa=$(ifconfig
如何做到这一点?我想知道如何在 Go 中将字符串解析为 net.Addr。如我所见,只有 CIDR、IP 和 MAC 的解析器。 最佳答案 使用 net.Resolve* 函数解析地址。函数返回满足
我正在为一个 friend 编写一个游戏(《我的世界》)的模组。为了执行 mod 的指定功能,我需要确保在特定时间内可以访问服务器,我使用 InetAddress 来执行此操作,但每次使用该命令时都会
我正在学习 C,经过大量研究(阅读 K&R 书(仍在阅读),阅读一些文章和一些关于 SO 的答案)并采取一些措施后,我在真正理解 C 中的数组和指针方面遇到了一些麻烦一路上有大量的笔记,我决定做一个小
在网上冲浪时,我发现了一个发送 GET 请求的 C++ 示例。这段代码中我无法理解的部分是为什么(请参阅粗体部分)变量 addr 是类型转换的。我知道该函数只接受某种类型。但为什么要使用一种类型然后将
当我尝试启动我的数据库时,mongodb 正在记录以下消息: 2014-08-12T08:42:17.522-0300 [initandlisten] journal dir=/www/mongodb
我有一个相当奇怪的用例,我想在发送请求之前覆盖客户端的属性 Grpc.TRANSPORT_ATTR_REMOTE_ADDR 。 在服务器端,我接收来自许多客户端的请求,并使用此属性提取它们的来源。然后
我正在尝试读取一些 xtensa 汇编代码,但被 L32R 指令难住了: 例如给定以下行: 0000 2f04 : 2f0c: ffef21 l32r a2, 2e
当我发现 Addr# 时,我最近一直在寻找各种 Haskell 怪癖,比如未装箱类型等等类型。 GHC.Prim 包是这样描述的: An arbitrary machine address assum
我想通过原始套接字发送 TCP 数据包,然后我被 tcp header 的校验和字段卡住了。由于我不知道如何找出原始套接字使用的实际IP地址,因此似乎不可能构造TCP伪 header 来计算校验和。
我在 Windows 中进行客户端开发,在 Linux 中进行服务器端开发(我以虚拟方式运行)。我的客户端套接字设置为连接到我的 linux 服务器的 inet addr(使用 localhost 似
我想通过这个函数获取页面地址。 virt_to_page(addr); 但是编译的时候出现了这个错误 Error implicit declaration of function virt_to_pa
这个问题在这里已经有了答案: Returning array declared in function returns address of local variable in C? (4 个答案)
我正在开发一个简单的程序,它将获取给定变量的内存地址,最多 64 位(unsigned long)。目前这是我的代码,但出于某种原因,编译器向我发出警告,说我的方法正在返回局部变量的地址,而这正是我想
最近在看《the shellcoder's handbook》这本书,对c的理解很深,但是最近遇到一段代码,看不懂。 这是一段代码: char a[4]; un
我一直在使用 Go 教程 here但是 main 函数的最终版本为我返回了一个错误: $ go build wiki.go # command-line-arguments ./wiki.go:97:
我可以使用 RTTI 和 Addr(Field) 获得相同的字段指针吗? 例如: TSomeClass 私有(private)的 FSomeField:整数; ... 1) MyPointer = A
我必须将这样的字符串“FE80:0000:0000:0000:0000:0000:0000:0012”转换为不带“:”的 const uchar *addr。 我尝试在没有“:”的情况下拆分字符串并像
我是一名优秀的程序员,十分优秀!