Handling language trampoline

Dmitry Antipov <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
When debugging a program which is definitely in C++:

(gdb) info source
[...skipped...]
Contains 66 lines.
Source language is c++.
Producer is clang version 6.0.0 (trunk 319884).
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.

I've noticed that 'step' command causes GDB to perform some ObjC-specific work:

#0  lookup_minimal_symbol (name=0x8459a1 "_objc_msgSend", sfile=sfile@entry=0x0, objf=objf@entry=0x0) at ../../gdb/minsyms.c:313
#1  0x00000000005bd0f9 in lookup_bound_minimal_symbol (name=<optimized out>) at ../../gdb/minsyms.c:432
#2  0x00000000005c1666 in find_objc_msgsend () at ../../gdb/objc-lang.c:1282
#3  find_objc_msgcall (pc=pc@entry=139646390853344, new_pc=0x7ffe10329598) at ../../gdb/objc-lang.c:1340
#4  0x00000000005c1820 in objc_skip_trampoline (frame=0x16a0eb0, stop_pc=139646390853344) at ../../gdb/objc-lang.c:313
#5  0x000000000059f1dc in skip_language_trampoline (frame=frame@entry=0x16a0eb0, pc=139646390853344) at ../../gdb/language.c:605
#6  0x0000000000597129 in process_event_stop_test (ecs=ecs@entry=0x7ffe10329d10) at ../../gdb/infrun.c:6706
#7  0x0000000000598a10 in handle_signal_stop (ecs=ecs@entry=0x7ffe10329d10) at ../../gdb/infrun.c:6163
#8  0x000000000059a178 in handle_inferior_event_1 (ecs=0x7ffe10329d10) at ../../gdb/infrun.c:5352
#9  handle_inferior_event (ecs=ecs@entry=0x7ffe10329d10) at ../../gdb/infrun.c:5387
#10 0x000000000059af78 in fetch_inferior_event (client_data=<optimized out>) at ../../gdb/infrun.c:3903
#11 0x000000000055c89d in gdb_wait_for_event (block=block@entry=0) at ../../gdb/event-loop.c:859
#12 0x000000000055ca6f in gdb_do_one_event () at ../../gdb/event-loop.c:322
#13 0x000000000055cb5e in gdb_do_one_event () at ../../gdb/event-loop.c:304
#14 start_event_loop () at ../../gdb/event-loop.c:371
#15 0x00000000005af348 in captured_command_loop () at ../../gdb/main.c:329
#16 0x00000000005b019d in captured_main (data=0x7ffe10329e30) at ../../gdb/main.c:1155
#17 gdb_main (args=args@entry=0x7ffe10329f60) at ../../gdb/main.c:1171
#18 0x0000000000408e15 in main (argc=<optimized out>, argv=<optimized out>) at ../../gdb/gdb.c:32

Why it is so if source language was recognized as C++?

Dmitry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.