Запустите несколько процессов gdb в эмуляторе терминала в режиме разделенного экрана.

Я использую gdb для отладки параллельного mpi-кода prog. Для этого я использую небольшое количество процессов, скажу «M» и делаю что-то вроде

mpiexec -n M xterm -e gdb ./prog

Появляется M xterms, каждый из которых запускает один процесс GDB в одном из файловых программ.
В результате загромождение экрана отдельными окнами может быть довольно обременительным.
Есть ли какой-либо способ использования любого известного разделения- эмулятор оконного терминала (скажем, терминатор), например, чтобы процессы M gdb запускались только в одном окне, но с самого начала разбивались на M частей?


person Mark    schedule 13.05.2013    source источник


Ответы (2)


Я столкнулся с аналогичной проблемой и нашел tmpi, который делает именно то, что вам нужно: запускает процессы отладки mpi в M окна терминала tmux.

Клонируем репозиторий:

git clone https://github.com/Azrael3000/tmpi.git

затем установите с помощью:

sudo ./tmpi/install.sh

который помещает исполняемый файл tmpi в / usr / local / bin

Исполняемый файл tmpi и tmux должны находиться в пути на всех ваших серверах.

Запустить задание с:

tmpi M gdb my_executable

где M - количество процессов, которые вы хотите.

person Dr Simon Holgate    schedule 19.03.2019

То, что вам нужно, называется «терминальный мультиплексор»; загляните в экран или tmux

РЕДАКТИРОВАТЬ: это, вероятно, то, что вы хотите; выполните следующие команды в вашей оболочке

tmux new-session -d bash     # start a bash shell
tmux split-window -v python  # start a python shell below it
tmux attach-session -d       # enter the tmux session
person JRG    schedule 27.05.2013
comment
Так как же использование tmux / screen ответит на мой вопрос? Еще раз, и еще более упрощенно, запуск нескольких параллельных заданий с mpi, скажем, просто «верхний» процесс, например: «mpiexec -n 2 xterm -e top», покажет 2 xterms с одним верхним процессом, запущенным в каждом. Что мне делать с tmux / screen, чтобы два процесса работали бок о бок на двух панелях одного разделенного экрана? - person Mark; 01.06.2013
comment
stackoverflow.com/questions/1236376/ - person JRG; 01.06.2013
comment
Я не вижу связи между этой ссылкой и моим вопросом. Я не хочу запускать новый процесс в новом окне ... Я хочу запустить несколько новых процессов с помощью одной команды mpi в одном окне, разделить на столько панелей, сколько запущено процессов. - person Mark; 01.06.2013
comment
Кстати: если у вас не работает MPI, я могу задать аналогичный вопрос и без него. Просто введите: "xterm top & xterm top &" сразу в одной командной строке. И снова появятся два xterms, начинающиеся с "вершины". Теперь я ищу замену этой команды, например, для вывода только всплывающего одиночного терминала (?), Разделенного, однако, на две панели, каждая из которых запускает один из двух «верхних» процессов. . Меня не волнует, будет ли выполнять эту работу tmux / screen / или что-то еще, пока создается только единственный дополнительный терминал. - person Mark; 01.06.2013
comment
@Mark, я доволен тем, что то, о чем вы спрашиваете, невозможно. Почему создание нескольких терминалов, упакованных в один видимый экран с screen или tmux, не соответствует вашим потребностям? - person vadipp; 08.08.2013