Чтобы добавлять сообщения и комментарии, .

@qnikst:
qnikst

а как в gdb узнать размер отступ до поля в union? что-то print &c->x — &x дает мне 4, хотя судя по всему (x/fb) там 1.

@qnikst:
qnikst

как такое может быть?

21 pub fn show_enum(ptr: *mut Result<u8,u16>) {
(gdb) x/8xb ptr
0x4255d8 <c65Q_info>: 0x48 0x8b 0x45 0x08 0xbf 0x02 0x00 0x00
(gdb) step
23 Box::from_raw(ptr)
(gdb) x/8xb ptr
0x6e0e10: 0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x00

#[no_mangle]
pub fn show_enum(ptr: *mut Result<u8,u16>) {
let result : Box<Result<u8,u16>> = unsafe {
Box::from_raw(ptr)

@L29Ah:
L29Ah

target remote | openocd -c "gdb_port pipe; log_output openocd.log"

@L29Ah:
L29Ah

У кого как прикручен gdb к vim?

@Strephil:
Strephil

GNU Debugger 7.8, запилили guile

@ygrek:
ygrek

Achievement unlocked : live patching of code

@Strephil:
Strephil

Ура!
Вышел GNU Debugger 7.7! тут и улучшения в питоньих скриптах, и новые команды!
sourceware.org

@nib952051:
nib952051

как-то отлаживать в креаторе становится не так прикольно с включенным ccache. Больше невозможно. Пора вырубать ccache. Но собирается всё быстро:)

@paulfertser:
paulfertser

Everything you need to know about decades-old and modern GDB facilities on 44 slides: linaro.org

@Strephil:
Strephil

Вышла новая версия — 7.6
каких-то больших улучшений не видно на первый взгляд.
хотя вот more Python scripting improvements.
Я вот этот python scripting в gdb никак не осилю. надо будет как-нибудь поразбираться, что это такое.

@asvil:
asvil

Что такое end-stepping-range в gdb, когда я пытаюсь пройтись пошагово по инструкциям?
Почему при этом окошко асма не обновляется. Кто-нибудь вообще емаксом сишечку отлаживает?

@DespicableMe:
DespicableMe

Gdb ужасен просто на вид. Я не привык к таким вещам. Дайте мне кто-нибудь красную кнопочку.

@a13:
a13

как я вообще жил раньше без gdb-шных pretty printer-ов?
apt-get install kdevelop-data (да, там куча хлама, но пакетированной альтернативы не нашёл)
cp /usr/share/kde4/apps/kdevgdb/printers/gdbinit ~/.gdbinit

@a13:
a13

Чтоб не потерялось: костыль выдающий список нужных дебаг-пакетов, которые есть в репах

echo "attach $PID\ndetach" | gdb -x — 2>/dev/null | \
sed -n 's/Reading symbols from \(.*\)\.\.\.(no debugging symbols found)\.\.\.done\./\1/p' | \
while read p
do
dpkg -S $p
done | awk '{print $1}' | sort -u | cut -d : -f 1 | sed 's/^/\^/;s/$/\$/' | xargs aptitude -F '%p' search

@ilardm:
ilardm

я фигею с этой штуки:
можно выделить память прямо из gdb и вызвать функцию с параметром в виде указателя, в который запихнуть толькочто выделенную память, да ещё и остановиться там О_о

типа так:
print /x calloc( 1,4 )
=> 0x804a018
tb f_with_ptr_arg
call f_with_ptr_arg( (int*)0x804a018 )

@Strephil:
Strephil

В GNU Debugger 7.5 запилили поддержку гугловского недоязычка Go.

@Equidamoid:
Equidamoid

В gdb я могу поставить условие на брейк, условие — любое выражение на текущем ЯП. А вот можно ли поставить условие вида "посмотри в стек на уровень выше, и если там вот эта функция, то стоп"

@Strephil:
Strephil

Забавно, gdb не совместим со шлангом.
break func_name ставит break совсем в другом месте.

Теперь придется собирать свой быдлокод двумя конпеляторами:
шлангом для няшных сообщений об ошибках конпеляции,
gcc для отладки.

@Equidamoid:
Equidamoid

Магический скрипт вместо инструкций, как сделать руками — *удачество.

@sss:
sss

при отладке программ собранных в gcc с mingw бинарник gdb взятый из mingw-cross-env работает намного лучше чем родной из поставки виндового mingw

@Equidamoid:
Equidamoid

Получаю огрызок стека (там даже main() нет), зптем вот это:
previous frame identical to this frame (corrupt stack?)Как с таким бороться?

@ygrek:
ygrek

ygrek.org.ua — добавил показ всех чанков major heap'а. Следующим шагом хочу сделать отображение этой информации (адреса и размеры) на карту виртуальной памяти (info proc mappings). А ещё наверное надо в objsize подкрутить сбор распределения тэгов по чанкам — должно забавно получиться.

@sss:
sss

подскажите как сделать правильно брикпоинт с условием, нужно ловить если в конструкторе значение определенной переменной больше чем.

@ygrek:
ygrek

Никогда не делать `x addr`, иначе можно долго искать значения по обрезанному 64-битному адресу.. Только `x/a`.

@ygrek:
ygrek

/me доволен как слон — в транк закоммитили cfi аннотации — caml.inria.fr

@wasd:
wasd

[00:08] wasd> а ещё гдб несёт какую-то хуйню, кстати. ща пример приведу.
[00:09] wasd> (gdb) b cmdlet_search
Breakpoint 1 at 0x400ec3: file plugins.c, line 14.
[00:09] wasd> но на деле функция в 96 строке
[00:09] LexsZero> а на 14 што?
[00:09] wasd> b plugins.c:96 говорит что в этом файле нет 96 строки
[00:10] wasd> на 14 это:
for(i = 0; cmdlist[i] != 0; i++) {}
[00:10] wasd> какие-то кривые дебагсимволы штоле
[00:10] LexsZero> хм, мейби
[00:11] wasd> причем после клина и полного ребилда ровно та же херня. надо бы гцц 4.5 поставить, а то это 4.6
[00:11] wasd> боже, ещё и prerelease. откачусь-ка.
[00:15] wasd> 4.4 ведёт себя ок.
[00:15] LexsZero> лол
[00:15] LexsZero> ГНУ

@wasd:
wasd

Поцхему мой ГЭДЭБЭ пропускает куски кода, когда я делаю step? оно ОПТИМИЗИРОВАЛОСЬ?

@wasd:
wasd

Што

(gdb) b plugins.c:17
No line 17 in file "plugins.c".

В это время в емаксе:
-UU-:----F1 plugins.c 3% L17 (C/l Abbrev)

@wasd:
wasd

Посоны, у меня вопрос. Есть shared object. Как бы мне запихать его в gdb и вызывать из него разные функции, подставляя в них аргументы и смотря чогде там падает?

@waterlaz:
waterlaz

Breakpoint 1, main () at main.c:44
44 atexit(&f);
(gdb) p &f
$1 = (void (*)()) 0x400298 <f>
(gdb) step
atexit (func=0x212f38) at stdlib/atexit.c:112

И как с этим жить, бля?

@folex:
folex

Эм. А почему если я делаю брейпойнт на создании некоторого объекта, после которого всё крешится, а потом много-много раз жму si в gdb, то всё выглядит так, будто крешится всё на стадии входа в конструктор, однако если после креша сделать up 1, оказывается, что мы уже далеко зашли в конструкторе, всё няшно видно, вот она ошибка, и всё такое.
ЧЯДНТ?

Предоставлю данные, которые помогут ответить ._.

@Stiletto:
Stiletto

ГДБ╨═ЕРРОР═ВХИЛЕ═ЛОАДИНГ═СХАРЕД═ЛИБРАРИЕС╨═ЛИБПЫТХОН╡╝╤╝СО╝╠╝╟╨═ЦАННОТ═ОПЕН═СХАРЕД═ОБЙЕЦТ═ФИЛЕ╨═нО═СУЦХ═ФИЛЕ═ОР═ДИРЕЦТОРЫ

@ygrek:
ygrek

пришлось обмазаться питоном, но зато теперь можно в gdb смотреть камлевые значения — ygrek.org.ua

@rion:
rion

нашел интересную багофичу. gdb не умеет отлаживать проги со встроенным манифестом. говорит "error reading symbols"

@sbar:
sbar

Поставил один break после которого всегда должен выполняться jump +2. Возможно ли автоматизировать средствами gdb?

@nobodyzzz:
nobodyzzz

в этих ваших линуксах можно сделать чтобы gdb запускался если в какой-нибудь программе произошле exception? inb4 coredump не подходит.

@longedok:
longedok

Жуйк, среди тебя есть использующие gdb без всяких gui-приблуд? Расскажите, удобно ли вам дебажить в коносли? Или, если знаете какую-нибудь gui-приблуду под windows, можете и про неё рассказать тоже.

@ilardm:
ilardm

недавно в процессе дебага случайно(да, не силён в консольном дебаге) что-то нажал и gdb стал показывать код в real-time. в следующий раз уже не вспомнил что это было. сейчас нашёл как это воспроизвести — C-x C-a

@wasd:
wasd

лол, по недосыпу набрал в gdb "make", и чо вы думаете? запустился make и собрал проект. удобнота, набрал make, затем r и готово, после чего половил чокак и тыкнул C-x o, поменял чонадо, C-x C-s C-x o make r y C-c C-c C-x o и так в цикле :3 :3 :3 :3 :3

@wasd:
wasd

забыл как запускать gdb в емаксе — M-x gdb же? у меня ничего не происходит почему-то