linux - 如何设置gdb运行在/bin/sh

标签 linux debugging binary gdb clion

Clion (c++ IDE) 使用 gdb 作为调试器,但除非我们将/bin/sh 设置为 SHELL,否则它不会工作。能不能在IDEA打开调试器之前放个脚本之类的?

最佳答案

我正在努力实现几乎相同的目标,并且我成功地使用了 bash,只是必须手动设置调试器。我可以使用这样的脚本,通过管道将输入从 bash 脚本传送到我的可执行文件。

#!/bin/bash
echo "-- Testing our implementation of OpenShell --"
echo ""
echo "- If you have any problem in passing a test read the corresponding"
echo "- source file to understand what the test is checking"
echo ""
echo -n "********************* PRESS ENTER TO RUN TESTS  ... "
read answ
echo "top -b -n1|head -8|tail -1" | ./shell
echo -n "********************* PRESS ENTER TO TEST WILDCARDS  ... "
read answ
echo "ls -al *.*" | ./shell
echo ""
echo -n "********************* PRESS ENTER TO RUN CHECKENV  ... "
read answ
valgrind ./shell < <(echo "checkenv")
echo -n "********************* TEST ALGORITHMS ... "
read answ
valgrind ./shell < <(echo "ls -al open* |grep open|awk '{print \$9}'")
echo -n "********************* TEST DONE. YOU SHOULD SEE FILENAMES ABOVE ... "

我已经将上面的代码保存为 RUN_TESTS 并将它作为我的可执行文件 (shell) 然后 bash 将根据剧本。我希望这有帮助吗?

关于linux - 如何设置gdb运行在/bin/sh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36966784/

相关文章:

linux - 从 ssh 启动窗口应用程序

字符设备捕获多个 (int) ioctl 参数

debugging - 从 IntelliJ 调试功能测试

debugging - 反汇编调试找不到我的地址

c++ - 计算范围 [x,y] 中整数的二进制补码表示中的 1

C++ fstream - 无法使用二进制格式从文件中读取

java - Java 中与负字节的异或

linux - 当 rm 文件但硬链接(hard link)仍然存在时,inode 将被标记为 "unused"?

php - 如何在 xampp linux 机器(oracle linux)中启用 pdo oci

c - 当我在 GDB 中运行程序时,GDB 是如何显示程序的虚拟地址的?