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