当前位置: 首页 > 面试题库 >

如何使用命令标志在将来的共享库上设置断点

杜河
2023-03-14
问题内容

我正在尝试使用该--command标志自动执行gdb会话。我正在尝试在共享库(相当于DLL的Unix)中的函数上设置断点。我的cmds.gdb看起来像这样:

set args /home/shlomi/conf/bugs/kde/font-break.txt
b IA__FcFontMatch
r

但是,我得到以下信息:

shlomi:~/progs/bugs-external/kde/font-breaking$ gdb --command=cmds.gdb...
GNU gdb 6.8-2mdv2009.0 (Mandriva Linux release 2009.0)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-mandriva-linux-gnu"...
(no debugging symbols found)
Function "IA__FcFontMatch" not defined.
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]

因此,它毕竟不会设置断点。如何将默认值设置为“ y”,以在未决的将来共享库加载时设置断点?

我记得自己能够做些事情,但无法回忆起什么。


问题答案:

回覆我自己,我想提供某人在IRC上给我的答案:

(gdb) apropos pending
actions -- Specify the actions to be taken at a tracepoint
set breakpoint -- Breakpoint specific settings
set breakpoint pending -- Set debugger's behavior regarding pending breakpoints
show breakpoint -- Breakpoint specific settings
show breakpoint pending -- Show debugger's behavior regarding pending breakpoints

因此, 设置断点挂起就 可以了;它用于cmds.gdb例如

set breakpoint pending on
break <source file name>:<line number>


 类似资料:
  • 问题内容: Debian不再为gTest提供任何预编译的软件包。他们建议您将框架集成到项目的makefile中。但是我想保持我的makefile干净。如何像以前的版本(<1.6.0)一样设置gTest,以便可以链接到库? 问题答案: 开始之前,请确保您已阅读并理解 Google的注释! 1.获取googletest框架 或手工获取。我不会保留这小小的“操作方法”,因此,如果您偶然发现了它,并且链接

  • 问题内容: 我正在尝试将文件从本地目录上传到远程目录。我有一个为此编写的Groovy库。 但是,以上操作失败并显示以下错误: 如何确保文件设置正确?也就是方法正确吗? 问题答案: 该错误信息 该路径在.jtl文件路径之前需要一个“ at”()符号 在您的情况下,双引号可能会丢失。

  • 我们试图切换到jenkins管道,但我在groovy/java的低水平阻止了我们建立一个共享库。 这里是我的共享库(位于bitbucket中git repo的{root}/src/com/pipeline.groovy中)我必须承认,我在这里做什么都不知道,因为我不知道包裹的定义 Jenkins的管道看起来 通过所有这些设置,我最终得到了错误: 我怀疑我的漂亮包裹的定义,但我坚持这样做。 非常欢迎

  • 问题内容: 有什么方法可以从Java代码中调用库中的函数吗?通常,可以在Java程序中使用Linux 库吗? 问题答案: 答案是“ JNI” :) 这里有几个链接: 如何在Linux上为JNI应用程序编译动态库? http://learn-from-the-guru.blogspot.com/2007/12/java-native-interface-jni-tutorial-hell.html

  • 问题内容: 我一直在尝试运行命令并解析golang中的输出。这是我正在尝试做的一个示例: 包主 现在,当我尝试运行“ ls -ltr”时,出现以下错误: 因此,基本上,go在PATH中寻找整个“ ls -ltr”。而且显然不存在。我可以通过任何方式将标志传递给任何参数吗?TIA。 问题答案: 您可以通过将更多参数传递给函数来将参数传递给程序-它是可变的: https://golang.org/pk

  • 问题内容: 我想向正在处理的类中添加一些log.debug语句,并且希望在运行测试时在输出中看到它。我想在命令行上覆盖log4j属性,如下所示: 我经常做这种事情。我特别只对在命令行上传递它的方式感兴趣。我知道如何使用配置文件进行操作,但这不适合我的工作流程。 问题答案: log4j不直接支持此功能。 由于您不希望使用配置文件,因此很可能使用编程配置。我建议您考虑扫描所有系统属性,并根据此内容显式