应用程序中所有函数调用的列表

2024-03-11

我们如何列出应用程序中调用的所有函数。我尝试使用 GDB,但它的回溯列表仅到主函数调用。

我需要更深入的列表,即主函数调用的所有函数以及从这些被调用函数调用的函数的列表,等等。

有没有办法在 gdb 中得到这个?或者你能给我一些关于如何获得这个的建议吗?


我们如何列出应用程序中调用的所有函数

对于任何实际大小的应用程序,此列表将包含数千个条目,这可能会使其毫无用处。

你可以找到所有的功能defined(但不一定被调用)在应用程序中nm命令,例如

nm /path/to/a.out | egrep ' [TW] '

您还可以使用 GDB 在每个函数上设置断点:

(gdb) set logging on     # collect trace in gdb.txt
(gdb) set confirm off    # you wouldn't want to confirm every one of them
(gdb) rbreak .           # set a breakpoint on each function

一旦继续,您将为每个调用的函数命中断点。使用disable and continue命令前进。我不认为有一种简单的方法可以实现自动化,除非您想使用 Python 脚本。

已经提到过gprof是另一个不错的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序中所有函数调用的列表 的相关文章

随机推荐

  • ASP.Net MVC 3 Html.TextAreaFor 上的 HtmlEncode

    我有一个 ASP Net MVC 3 页面 其中有一个 Html TextAreaFor 控件 请参阅下面的代码 如果我尝试将页面提交到 http post 操作 并使用尖括号中的文本 例如
  • Python Boto3 更新/覆盖 S3 存储桶中的对象

    我找不到用于更新 覆盖 Amazon S3 存储桶中的对象的 Python 源代码示例 这可能吗 来自文档 https boto3 amazonaws com v1 documentation api latest reference se
  • Chrome 72 是否破坏了 css 背景 svgs 的“data:image/svg+xml;utf8”? [复制]

    这个问题在这里已经有答案了 我的 svgs 在 css 中指定如下 background image url data image svg xml utf8
  • Clojure 中的 #^ 运算符是什么意思?

    什么是 在 Clojure 中是什么意思 我的副本Clojure 的乐趣没有在任何地方提到这个运算符 它不在索引中或我查看的文本中的任何位置 我无法真正用 Google 搜索它 因为该运算符由搜索框忽略的特殊字符组成 是元数据的旧形式阅读器
  • 父线程终止时子线程是否退出

    我正在 Visual Studio C 中使用调用 beginthreadex endthreadex 进行一些多线程编程 我创建了一个子线程thread1 子线程在一个永远不会退出的函数上运行 因为它有一个无限循环 现在 如果父线程因错误
  • 从 Symfony2 和 Doctrine2 定义和使用 ENUM 类型的正确方法

    我在我的一张表中使用 ENUM 类型 但 Doctrine 不太喜欢它 所以我做了研究并发现了这个topic https stackoverflow com questions 8750724 what do you use instead
  • Azure - 服务端点和专用端点之间的简单区别

    我无法清楚地理解服务端点和专用端点之间的区别 需要帮助 最好有一个例子 您可能已经在私人链接常见问题解答 https learn microsoft com en us azure private link private link faq
  • 如何在2013 SQL Server数据库项目中创建登录用户

    我正在尝试创建一个具有 SSDT 数据库项目登录名的用户 该登录名已存在于目标服务器上 使用以下 SQL CREATE USER MyLogin FOR LOGIN MyLogin WITH DEFAULT SCHEMA dbo GO 我收
  • Angular 应用程序中的语法错误:意外的标记 <

    我有一个 Angular 应用程序 它可以在我的本地和生产环境中完美运行 经过微小的更改后 我在本地运行了该应用程序并且运行良好 然后我构建了该项目并复制了dist文件夹到 Web 服务器 问题是当我尝试访问该应用程序时 我在 Chrome
  • ASP.NET MVC - 单元测试重写初始化方法

    我有一个如下所示的抽象类 它被所有其他控制器继承 是否有可能测试这个方法 顺便说一句 我正在尝试使用最小起订量 但没有运气 如果您能帮助我 我将不胜感激 public abstract class ApplicationController
  • 为什么 Entity Framework 在直接 select 语句中执行速度比 Dapper 快

    我是使用 ORM 处理数据库的新手 目前我正在制作一个新项目 我必须决定是使用 Entity Framework 还是 Dapper 我读过很多文章 都说 Dapper 比实体框架更快 因此 我制作了 2 个简单的原型项目 一个使用 Dap
  • 如何从 Web 模块使用 @WebServiceRef 注入 EJB

    我有一个 JEE6 应用程序 带有一个 ejb 和一个 Web 模块 在 GlassFish 3 1 1 上运行 现在我想通过将 WebService JAX WS 作为会话 Bean 注入到多个托管 Bean 中来访问它 Stateles
  • 当鼠标悬停在 UWP 按钮上时,按钮会改变颜色

    我正在尝试创建一个 UWP 按钮 当鼠标指针悬停在其上时 该按钮将更改背景颜色 我遇到的麻烦是 默认情况下 它似乎已经做到了这一点 但不是我想要的颜色 当我将鼠标悬停在红色按钮上时 它会变成默认的灰色 然后当我将鼠标移开时又会变回灰色 我用
  • 如何在不使用鼠标的情况下执行虚拟鼠标单击C# [重复]

    这个问题在这里已经有答案了 我想在 Windows 应用程序中执行单击 而不使用真正的鼠标 这样我可以将其最小化 很像机器人的行为 我该怎么做 我认为你正在寻找的功能是PostMessage DllImport user32 dll Set
  • GitLab Runner - 如何一次只允许一个管道运行

    我是 GitLab 新手 面临一个问题 如果我在同一个 gitlab runner 上同时触发两个管道 它们都会并行运行并导致失败 我想要的是将运行限制为一次只运行一个管道 而其他管道则在队列中运行 我已经设置了concurrent 1在
  • 无法向 Google App 脚本授予授权或许可

    为什么我无法向我使用同一 Google 帐户创建的 Google Apps 脚本授予许可 授权 看来 Google 不相信自己能够将自己的 Google Apps 脚本与自己的电子表格一起使用 这是破坏一切的代码行 如果此行不存在 则不会请
  • Android 应用程序将数据发送到 PHP 脚本 - 预期失败

    我尝试开发一个需要将数据发送到 MySql 数据库的应用程序 为了实现它 我创建了一个 httppost 如下所示 public void postData try Create a new HttpClient and Post Head
  • 如何将 C# 程序集资源嵌入到同一个程序集中?

    我已将不同文化的资源添加到我的班级图书馆项目中 构建时 会为每种区域性创建单独的文件夹 每个文件夹中都有一个程序集 有没有办法将所有资源嵌入类库程序集中 而不是为每种文化提供额外的程序集 该类库最终会在另一个项目中使用 因此对于这些单独的文
  • ASP.NET 虚拟路径在哪里解析波形符“~”?

    ASP NET 虚拟路径在哪里解析波浪号 在链接中 例如 它是否重定向 或者RedirectToAction在 ASP NET MVC 中 它从这里获取 VirtualPathUtility ToAbsolute contentPath h
  • 应用程序中所有函数调用的列表

    我们如何列出应用程序中调用的所有函数 我尝试使用 GDB 但它的回溯列表仅到主函数调用 我需要更深入的列表 即主函数调用的所有函数以及从这些被调用函数调用的函数的列表 等等 有没有办法在 gdb 中得到这个 或者你能给我一些关于如何获得这个