相关疑难解决方法(0)

让gcc在调试信息中放置相对文件名

我正在编译的项目使用CMake,它喜欢绝对的路径名.

当我在启用调试信息的情况下进行编译时,gcc会将这些长名称放入.debug_str部分,这对于调试是不利的.我希望在那里有一个简短的相对项目根路径名.

是否有一些选项可以告诉gcc在发出调试数据之前去除路径名的某些部分?或者,也许,有一些工具可以在已编译的二进制文件上执行此操作?

我已经尝试使用SET(CMAKE_USE_RELATIVE_PATHS ON)(这似乎是令人难以接受的开发者)的选项,但我使用的乱源生成,路径名仍未形式我想他们是.即他们./../src/mod_foo/foo.c而不是mod_foo/foo.c.

debugging gcc cmake debug-symbols

14
推荐指数
2
解决办法
6009
查看次数

如何使用Xcode 5将预编译的静态库的调试符号与源代码进行匹配?

我必须使用外部构建脚本编译FFmpeg for iOS ,但是当我调试时,如果我深入研究libavformat库函数,我会看到汇编程序:

0x109a73:  cmpl   $0, 1192(%ebp)
0x109a7a:  jns    0x109a86                  ; mov_write_header + 198 at movenc.c:3539
0x109a7c:  movl   $1, 1192(%ebp)
0x109a86:  movl   16(%ebp), %eax
0x109a89:  cmpl   $0, 84(%eax)
0x109a8d:  movl   %edx, %ecx
0x109a8f:  jne    0x109ad9                  ; mov_write_header + 281 at movenc.c:3548
0x109a91:  testb  $2, 48(%ecx)
0x109a95:  jne    0x109ac1                  ; mov_write_header + 257 at movenc.c:3541
Run Code Online (Sandbox Code Playgroud)

有一些清晰的调试符号可以让我相信应该有一些方法告诉Xcode这个源代码的位置,以便于调试.

这甚至可能吗?

编辑:我在这里找到了一个相关的问题Xcode 4中没有外部库的符号/来源

因此,当我跑步时,xcrun dwarfdump libavformat.a | grep "\.c"我得到一堆这样的结果:

AT_decl_file( "libavformat/movenc.c" )
Run Code Online (Sandbox Code Playgroud)

所以我尝试将相关的源文件放在相对于.a文件和我的.xcodeproj文件的文件夹中,但这两种方法都不起作用.完整源代码可在此处获得:https://github.com/openwatch/livestreamer-ios

edit2:我发现了另一个关于如何为lldb设置源映射的问题但是我不太清楚要做什么... …

xcode ffmpeg ios lldb xcode5

6
推荐指数
1
解决办法
2733
查看次数

标签 统计

cmake ×1

debug-symbols ×1

debugging ×1

ffmpeg ×1

gcc ×1

ios ×1

lldb ×1

xcode ×1

xcode5 ×1