Add -Z embed-source=yes to embed source code in DWARF debug info
This commit is contained in:
@@ -629,6 +629,9 @@ pub fn file_metadata<'ll>(cx: &CodegenCx<'ll, '_>, source_file: &SourceFile) ->
|
||||
};
|
||||
let hash_value = hex_encode(source_file.src_hash.hash_bytes());
|
||||
|
||||
let source =
|
||||
cx.sess().opts.unstable_opts.embed_source.then_some(()).and(source_file.src.as_ref());
|
||||
|
||||
unsafe {
|
||||
llvm::LLVMRustDIBuilderCreateFile(
|
||||
DIB(cx),
|
||||
@@ -639,6 +642,8 @@ pub fn file_metadata<'ll>(cx: &CodegenCx<'ll, '_>, source_file: &SourceFile) ->
|
||||
hash_kind,
|
||||
hash_value.as_ptr().cast(),
|
||||
hash_value.len(),
|
||||
source.map_or(ptr::null(), |x| x.as_ptr().cast()),
|
||||
source.map_or(0, |x| x.len()),
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -659,6 +664,8 @@ pub fn unknown_file_metadata<'ll>(cx: &CodegenCx<'ll, '_>) -> &'ll DIFile {
|
||||
llvm::ChecksumKind::None,
|
||||
hash_value.as_ptr().cast(),
|
||||
hash_value.len(),
|
||||
ptr::null(),
|
||||
0,
|
||||
)
|
||||
})
|
||||
}
|
||||
@@ -943,6 +950,8 @@ pub fn build_compile_unit_di_node<'ll, 'tcx>(
|
||||
llvm::ChecksumKind::None,
|
||||
ptr::null(),
|
||||
0,
|
||||
ptr::null(),
|
||||
0,
|
||||
);
|
||||
|
||||
let unit_metadata = llvm::LLVMRustDIBuilderCreateCompileUnit(
|
||||
|
||||
@@ -1853,6 +1853,8 @@ extern "C" {
|
||||
CSKind: ChecksumKind,
|
||||
Checksum: *const c_char,
|
||||
ChecksumLen: size_t,
|
||||
Source: *const c_char,
|
||||
SourceLen: size_t,
|
||||
) -> &'a DIFile;
|
||||
|
||||
pub fn LLVMRustDIBuilderCreateSubroutineType<'a>(
|
||||
|
||||
Reference in New Issue
Block a user