相关疑难解决方法(0)

目标文件包含什么?

在C或C++编译的各个阶段,我知道生成了一个目标文件(即any_name.o文件).这个.o文件包含什么?我无法打开它,因为它是一个二进制文件.

有人可以帮帮我吗?目标文件的内容主要依赖于我们在Unix上使用的编译器吗?

c c++ compilation

45
推荐指数
6
解决办法
3万
查看次数

DWARF和DWARF与dSYM文件有什么区别?

XCode支持此Build设置的这两个值:

构建设置>构建选项>调试信息格式.

有谁可以解释这些差异?

xcode ios

35
推荐指数
3
解决办法
1万
查看次数

为什么使用clang的2阶段命令行构建不会生成dSYM目录?

我有一个简单的项目,我想调试想生成带调试符号的dSYM文件夹.

运行:

clang++ -std=c++14 -stdlib=libc++ -g -o Lazy Lazy.cpp

像我期望的那样创建Lazy.dSYM.

然而:

clang++ -std=c++14 -stdlib=libc++ -g -c Lazy.cpp
clang++ -stdlib=libc++ -g -o Lazy Lazy.o
Run Code Online (Sandbox Code Playgroud)

不创建Lazy.dSYM(似乎符号嵌入在二进制文件中).

遗憾的是,两步构建是我修改后的makefile所做的.如何从两阶段编译和链接构建生成Lazy.dSYM?

不需要 dSYM目录,只需调试符号,但想了解它的创建时间和原因.

c++ debugging macos debug-symbols

15
推荐指数
1
解决办法
4009
查看次数

从另一个线程打印堆栈跟踪

我知道我可以使用backtrace()或[NSThread callStackSymbols]来获取当前线程的堆栈跟踪,但是如何获得DIFFERENT线程的堆栈跟踪(假设它已被冻结)?

iphone objective-c stack-trace

7
推荐指数
2
解决办法
5015
查看次数

OSX 上可执行文件中的 Clang 链接 debug_info

在 OSX 上,当您像这样链接来自多个目标文件的二进制文件时

clang++ -g myfile.cpp -o myfile.o
clang++ myfile.o -shared -o myfile.dylib
Run Code Online (Sandbox Code Playgroud)

它将生成一个.debug_info部分(等),myfile.o但其中myfile.dylib仅存储对的引用myfile.o,您必须dsymutil myfile.dylib手动运行。将目标文件中的dsymutil所有部分链接在一起并将它们存储在一个包中。.debug_infomyfile.dylib.dSYM

我的问题是:有没有办法让 Clang 在编译期间真正链接调试信息并将其直接存储在 中myfile.dylib

或者,如果这是不可能的,是否可以在生成包后将其嵌入.dSYM到包中?.dylib

macos clang dwarf

5
推荐指数
0
解决办法
559
查看次数

cmake使用macos上的makefile生成器创建的<target> .dSYM目录中有什么?

我在MacOS上使用CMake为我的C++项目生成Makefile.当我构建一个目标(比如说test/AsyncTest)时,我得到了那个目标,加上一个test/AsyncTest.dSYM/包含以下内容的目录:

test/AsyncTest.dSYM/Contents/Resources/DWARF/AsyncTest
test/AsyncTest.dSYM/Contents/Info.plist
Run Code Online (Sandbox Code Playgroud)

我猜这是调试信息(基于".dSYM"和"DWARF"线索),但我还没有找到一个工具让我检查AsyncTest文件.dwarfdump不认识它.

那么,这个文件究竟是什么?有没有一个工具可以用来转储符号信息(假设它是什么)?当我没有要求时,为什么CMake会产生它呢?我可以生成它(因为生成的文件是huuuuge)?

cmake dwarf dsym

4
推荐指数
1
解决办法
431
查看次数

标签 统计

c++ ×2

dwarf ×2

macos ×2

c ×1

clang ×1

cmake ×1

compilation ×1

debug-symbols ×1

debugging ×1

dsym ×1

ios ×1

iphone ×1

objective-c ×1

stack-trace ×1

xcode ×1