, Что-то звучит немного необычно.

ю, что этот вопрос задавался ранее, но я прочитал все темы и не нашел ответа. С того момента, как я исполняюrun чтобы начать отладку моего проекта, я получаю это:Program received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 6], Когда я делаюctrl+cGDB говорит мне:Program received signal SIGINT, Interrupt. 0x00000000 in ?? ()

Обычно он говорит мне, какой файл и какую функцию он прервал не0x00000000 in ?? () GDB больше не попадает на точки останова, и что безумно важно, так это то, что я и коллега совместно используем один и тот же сеанс (отладка выполняется с использованием cygwin с удаленной машины), и он работает для них хорошо, но не для меня. когда я пытаюсь получить информацию о потоках, используяinfo threads вот что я получаю:

[New Thread 20]
 [New Thread 21]
 [New Thread 22]
  Id   Target Id         Frame
  4    Thread 22 (ssp=0xa9004d5c) 0x00000000 in ?? ()
  3    Thread 21 (ssp=0xa9002e64) 0x00000010 in ?? ()
  2    Thread 20 (ssp=0xa9000ef4) 0x00000000 in ?? ()

The current thread <Thread ID 1> has terminated.  See `help thread'

нет нити 6, нет* чтобы указать, какой поток использует GDB. И я даже не знаю, связано ли это с проблемой. Может кто-нибудь мне помочь?

 Employed Russian06 дек. 2017 г., 19:54
Выочередной раз удерживая почти всю необходимую информацию.
 kessi07 дек. 2017 г., 07:48
Когда я говорю один и тот же сеанс, я имею в виду, что мы вдвоем вошли в систему как один и тот же пользователь. Что касается версии GDB, то это 7.2.
 Mark Plotnick07 дек. 2017 г., 01:45
«Совместно используя один и тот же сеанс», означает ли это, что несколько пользователей используют свою собственную копию gdb (одинаковые или разные версии?) И по очереди подключаются к одному и тому же удаленному процессу gdbserver?

Ответы на вопрос(2)

Решение Вопроса

другой вопрос.

Как я уже сказал в комментариях, вы не предоставляетеоколо достаточно информации, чтобы помочь вам. подробностиделои вы их удерживаете. Версии GDB и gdbserver имеют значение, как вы вызываете GDB и gdbserver, имеют значение, какие предупреждения вы получаете от GDB (если есть).

Теперь это сообщение об ошибке:

Program received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 6]

обычно означает, что gdbserver не подключил ни один из потоков вашего процесса, и этот поток пытался выполнить инструкцию точки останова (у вас есть точки останова, установленные до того, как это произойдет, не так ли?).

Одна из причин, по которой это может произойти, - когда ваша GDB загружается «неправильно»libthread_db.so (тот, который не соответствует целиlibc.so.6).

то, что делает сумасшедший вопрос, является фактом, что коллега и я, разделяем ту же самую сессию (отладка сделана, используя cygwin с удаленной машиной), и это работает хорошо для них, но не для меня.

Я не уверен, что вы подразумеваете под «одной и той же сессией», но, вероятно, нет, «когда он вводит команды, они работают; но когда я набираю одни и те же команды в одну и ту же GDB, они не работают».

Одна разница между вами и вашим коллегой может бытьLD_LIBRATY_PATH настройка переменной среды. Другой может быть в~/.gdbinit или в./.gdbinit.

Я предлагаю бежатьgdb -nx чтобы избавиться от последнего, и сброситьLD_LIBRARY_PATH чтобы избавиться от первого.

 kessi07 дек. 2017 г., 12:35
Когда я говорю о том же сеансе, я имею в виду, что мы вдвоем вошли в систему как один и тот же пользователь на одной машине. Что касается версии GDB, это 7,2.

и почему-то никто, казалось, не заметил, что это так: вот как я называю GDB/usr/local/build/gdbx.y/gdb/gdb что я должен делать это:/usr/local/build/gdbx.y/build/gdb/gdb Это была проблема пути.

 jww17 июл. 2018 г., 22:01
После местногоgdb установить вы обычно находитеgdb в/usr/local/bin/gdb, Что-то звучит немного необычно.

Ваш ответ на вопрос