如何在 lldb 中显示完整的文件名
How to display full file name in lldb
我对gdb的基本命令非常熟悉。不幸的是,苹果切换到了lldb,它具有完全不同的命令集,现在我需要学习一个新工具。
尝试调试程序时,我单步进入函数,但它没有显示函数所在的完整文件名。所以没有文件的路径。
是否有检索它的命令?
谢谢。
您可以执行image lookup -n <func-name>
来获取文件名
(lldb) image lookup -n main
1 match found in /Users/ml9951/manticore/trunk/src/regression-tests/goals/seq-logging/a.out:
Address: a.out[0x0000000100027670] (a.out.__TEXT.__text + 156144)
Summary: a.out`main at main.c:90 <<--------
(lldb)
它没有完整的路径,但希望这对某些人有所帮助。
(lldb) image lookup -v -a $pc
Address: libjvm.so[0x0000000001a3c2c4] (libjvm.so.PT_LOAD[1]..text + 24588836)
Summary: libjvm.so`SystemDictionaryShared::add_lambda_proxy_class(InstanceKlass*, InstanceKlass*, Symbol*, Symbol*, Symbol*, Method*, Symbol*, JavaThread*) + 356 at systemDictionaryShared.cpp:1642:3
Module: file = "/home/foo/bar/jdk17u-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/server/libjvm.so", arch = "x86_64"
CompileUnit: id = {0x0000038b}, file = "/home/foo/bar/jdk17u-git/src/hotspot/share/classfile/systemDictionaryShared.cpp", language = "c++14"
Function: id = {0x0d35d4df}, name = "SystemDictionaryShared::add_lambda_proxy_class(InstanceKlass*, InstanceKlass*, Symbol*, Symbol*, Symbol*, Method*, Symbol*, JavaThread*)", mangled = "_ZN22SystemDictionaryShared22add_lambda_proxy_classEP13InstanceKlassS1_P6SymbolS3_S3_P6MethodS3_P10JavaThread", range = [0x00007ffff74ff160-0x00007ffff74ff79d)
FuncType: id = {0x0d35d4df}, byte-size = 0, decl = systemDictionaryShared.cpp:1631:6, compiler_type = "void (class InstanceKlass *, class InstanceKlass *, class Symbol *, class Symbol *, class Symbol *, class Method *, class Symbol *, class JavaThread *)"
Blocks: id = {0x0d35d4df}, range = [0x7ffff74ff160-0x7ffff74ff79d)
LineEntry: [0x00007ffff74ff2c4-0x00007ffff74ff2c9): /home/foo/bar/jdk17u-git/src/hotspot/share/classfile/systemDictionaryShared.cpp:1642:3
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Symbol: id = {0x000055ba}, range = [0x00007ffff74ff160-0x00007ffff74ff79d), name="SystemDictionaryShared::add_lambda_proxy_class(InstanceKlass*, InstanceKlass*, Symbol*, Symbol*, Symbol*, Method*, Symbol*, JavaThread*)", mangled="_ZN22SystemDictionaryShared22add_lambda_proxy_classEP13InstanceKlassS1_P6SymbolS3_S3_P6MethodS3_P10JavaThread"
Variable: id = {0x0d35d4fd}, name = "caller_ik", type = "InstanceKlass *", location = DW_OP_reg12 R12, decl = systemDictionaryShared.cpp:1631:68
Variable: id = {0x0d35d512}, name = "lambda_ik", type = "InstanceKlass *", location = DW_OP_reg3 RBX, decl = systemDictionaryShared.cpp:1632:68
...
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 从命令行c++发送文本文件名
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 如何让我的代码显示文件名不正确或文件中数字的平均值?
- Visual Studio 中的"指向引用的指针"错误不会按发生位置的文件名显示
- 禁止显示 wx文件名::规范化错误消息
- QFile::打开失败,并显示 unicode 文件名
- 如何在Visual Studio中的MFC中的ListControl中显示所选文件名
- 查找所有文件时不显示文件名
- 如何在 lldb 中显示完整的文件名
- Win32 C++:使用开放文件名并显示位图文件
- 在实现 OpenFileDialog 时,"System.IO.FileStream"显示在生成的编辑文本框中,而不是文件名和路径上。如何?