如何设置调试进程的当前目录?

2024-02-06

我有一个对其调用的目录敏感的应用程序 - 它使用相对路径加载一些文件。

当我通过调试器启动程序时,如何控制初始当前目录是什么?

我宁愿避免向调试程序添加特殊代码以使其调用chdir;我的直觉是调试器应该提供某种方式在外部指定,因为无论如何它本质上是一个外部设置。

我使用的调试器是 TotalView,但我愿意接受其他 Linux 调试器的答案,因为它可以帮助我在电视中找到类似的设置。我可以在调用程序时指定环境变量,所以我尝试设置PWD,但没有运气。


对于 GDB,初始工作目录是您实例化 GDB 的目录。因此,只需从您希望的工作目录运行 GDB 即可。或者,在程序运行时,您可以通过执行以下操作来更改当前工作目录:

(gdb) print chdir("new/working/directory")

GDB 还有一个内置命令,用于从 GDB 提示符更改进程的工作目录:

(gdb) cd new/working/directory

我从未使用过 TotalView,但它应该具有类似的功能,可以从调试器中执行代码(有副作用)。

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

如何设置调试进程的当前目录? 的相关文章

  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a
  • 快速像素绘图库

    我的应用程序以每像素的方式生成 动画 因此我需要有效地绘制它们 我尝试过不同的策略 库 但结果并不令人满意 尤其是在更高分辨率的情况下 这是我尝试过的 SDL 好的 但是慢 OpenGL 像素操作效率低下 xlib 更好 但仍然太慢 svg
  • 如何构建任务“gems:install”

    我正在将 Rails 应用程序部署到 Linux 服务器 并且缺少一些 rake 任务 包括 rake gems install 和 rake db 我正在运行来自 GEM 的 Rails 2 3 4 为什么是这样 我该如何解决 我可以以某
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • 如何查询X11显示分辨率?

    这似乎是一个简单的问题 但我找不到答案 如何查询 通过 X11 存在哪些监视器及其分辨率 查看显示宏 http tronche com gui x xlib display display macros html and 屏幕宏 http
  • 监控子进程的内存使用情况

    我有一个 Linux 守护进程 它分叉几个子进程并监视它们是否崩溃 根据需要重新启动 如果父进程可以监视子进程的内存使用情况 以检测内存泄漏并在超出一定大小时重新启动子进程 那就太好了 我怎样才能做到这一点 您应该能够从 proc PID
  • 使用 pgAdmin 调试 PostgreSQL 函数

    I refer this http www postgresonline com journal archives 214 Using PgAdmin PLPgSQL Debugger html启用 PostgreSQL 服务器中的调试器
  • Visual Studio 2010 - 在调试期间查看列表导致超时

    我正在尝试调试一个项目 突然遇到一个问题 如果我尝试查看它 枚举任何对象集合都会导致超时 如果我正常运行该程序 就没有问题 如果我尝试查看任何集合 例如列表 我会收到超时错误 整个事情就会崩溃 我认为我的一个更复杂的集合可能出了问题 所以我
  • Visual Studio 调试器 - 自动变量分配

    我正在开发一个多开发人员项目 正在开发的应用程序是通过启动器应用程序启动的 该应用程序传递登录用户 位置等参数 现在 当我调试应用程序时 我在代码上设置了一个断点解析输入参数 并将用户名变量分配给我的用户名等 我可以对这些值进行硬编码 但是
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 如何让 Debug.WriteLine 与其他进程一起工作?

    我有一个程序可以使用以下命令生成另外两个进程System Diagnostics Process 他们的输出被第一个程序捕获 players p Key StartInfo new ProcessStartInfo FileName arg
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 在 JellyBean 上使用 LogCat

    我有一个非常随机发生的错误 所以我依赖LogCat我从 Play 商店购买的监控应用程序 以查看发生时设备上抛出的异常 自从使用 Jelly Bean 以来 我没有看到任何日志记录 我读过 使用 Jelly Bean 应用程序只能看到Log
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • 为什么 html 中的 AngularJS 错误没有显示在控制台中?

    Here s a fiddle http jsfiddle net 6y7odxmj 3 用于说明 当 ng click 指令 例如 调用未在控制器的 scope 或其父级 上定义的函数时 它会默默地失败 当我尝试调试网页时 这种行为令人抓

随机推荐