(gdb) rbs_set_field (obj=4516808, fel=0, val=239) at ../../include/rubinius.h:49 49 assert(fel < HEADER(obj)->fields); (gdb) rbs_get_field (obj=4505700, fel=1) at ../../include/rubinius.h:42 42 assert(fel < HEADER(obj)->fields); (gdb) b cpu_instructions.c:137 Breakpoint 3 at 0x7a3e: file cpu_instructions.c, line 137. (gdb) c Continuing. Breakpoint 2, cpu_locate_method (state=0x500c50, c=0x501060, obj=4506212, sym=239, mod=0xbffff9b0, missing=0xbffff9ac) at cpu_instructions.c:133 133 mo = cpu_find_method(state, c, obj, sym, mod); (gdb) help List of classes of commands: aliases -- Aliases of other commands breakpoints -- Making program stop at certain points data -- Examining data files -- Specifying and examining files internals -- Maintenance commands obscure -- Obscure features running -- Running the program stack -- Examining the stack status -- Status inquiries support -- Support facilities tracepoints -- Tracing of program execution without stopping the program user-defined -- User-defined commands Type "help" followed by a class name for a list of commands in that class. Type "help" followed by command name for full documentation. Command name abbreviations are allowed if unambiguous. (gdb) help stack Examining the stack. The stack is made up of stack frames. Gdb assigns numbers to stack frames counting from zero for the innermost (currently executing) frame. At any time gdb identifies one frame as the "selected" frame. Variable lookups are done with respect to the selected frame. When the program being debugged stops, gdb selects the innermost frame. The commands below can be used to select other frames by number or address. List of commands: backtrace -- Print backtrace of all stack frames bt -- Print backtrace of all stack frames down -- Select and print stack frame called by this one frame -- Select and print a stack frame return -- Make selected stack frame return to its caller select-frame -- Select a stack frame without printing anything up -- Select and print stack frame that called this one Type "help" followed by command name for full documentation. Command name abbreviations are allowed if unambiguous. (gdb) bt #0 cpu_locate_method (state=0x500c50, c=0x501060, obj=4506212, sym=239, mod=0xbffff9b0, missing=0xbffff9ac) at cpu_instructions.c:133 #1 0x00007b4d in cpu_unified_send (state=0x500c50, c=0x501060, recv=4505700, idx=71, args=0, block=4) at cpu_instructions.c:279 #2 0x00008f05 in cpu_run (state=0x500c50, c=0x501060) at instructions.gen:256 #3 0x00002193 in machine_run_file (m=0x500c40, path=0xbffffbf9 "lib/kernel.rbc") at machine.c:65 #4 0x00001e87 in main (argc=3, argv=0xbffffb44) at main.c:24 (gdb) help status Status inquiries. List of commands: info -- Generic command for showing things about the program being debugged macro -- Prefix for commands dealing with C preprocessor macros show -- Generic command for showing things about the debugger Type "help" followed by command name for full documentation. Command name abbreviations are allowed if unambiguous. (gdb) info "info" must be followed by the name of an info command. List of info subcommands: info address -- Describe where symbol SYM is stored info all-registers -- List of all registers and their contents info args -- Argument variables of current stack frame info auxv -- Display the inferior's auxiliary vector info breakpoints -- Status of user-settable breakpoints info catch -- Exceptions that can be caught in the current stack frame info checkpoints -- Help info classes -- All Objective-C classes info common -- Print out the values contained in a Fortran COMMON block info copying -- Conditions for redistributing copies of GDB info dcache -- Print information on the dcache performance info display -- Expressions to display when program stops info extensions -- All filename extensions associated with a source language info files -- Names of targets and files being debugged info float -- Print the status of the floating point unit info fork -- Help info frame -- All about selected stack frame info functions -- All function names info handle -- What debugger does when program gets various signals info interpreters -- List the interpreters currently available in gdb info line -- Core addresses of the code for a source line info locals -- Local variables of current stack frame info mach-port -- Get info on a specific port info mach-ports -- Get list of ports in a task info mach-region -- Get information on mach region at given address info mach-regions -- Get information on all mach region for the current inferior info mach-task -- Get info on a specific task info mach-tasks -- Get list of tasks in system info mach-thread -- Get info on a specific thread info mach-threads -- Get list of threads in a task info macro -- Show the definition of MACRO info mem -- Memory region attributes info pid -- Process ID of the program info plugins -- Show current plug-ins state info program -- Execution status of the program info registers -- List of integer registers and their contents info scope -- List the variables local to a scope info selectors -- All Objective-C selectors info set -- Show all GDB settings info sharedlibrary -- Generic command for shlib information info signals -- What debugger does when program gets various signals info source -- Information about the current source file info sources -- Source files in the program info stack -- Backtrace of the stack info symbol -- Describe what symbol is at location ADDR info target -- Names of targets and files being debugged info task -- Get information on task info terminal -- Print inferior's saved terminal status info thread -- Get information on thread info threads -- IDs of currently known threads info tracepoints -- Status of tracepoints info trampoline -- Resolve function for DYLD trampoline stub and/or Objective-C call info types -- All type names info variables -- All global and static variable names info vector -- Print the status of the vector unit info warranty -- Various kinds of warranty you do not have info watchpoints -- Synonym for ``info breakpoints'' Type "help info" followed by info subcommand name for full documentation. Command name abbreviations are allowed if unambiguous. (gdb) info scope requires an argument (function, line or *addr) to define a scope (gdb) bt #0 cpu_locate_method (state=0x500c50, c=0x501060, obj=4506212, sym=239, mod=0xbffff9b0, missing=0xbffff9ac) at cpu_instructions.c:133 #1 0x00007b4d in cpu_unified_send (state=0x500c50, c=0x501060, recv=4505700, idx=71, args=0, block=4) at cpu_instructions.c:279 #2 0x00008f05 in cpu_run (state=0x500c50, c=0x501060) at instructions.gen:256 #3 0x00002193 in machine_run_file (m=0x500c40, path=0xbffffbf9 "lib/kernel.rbc") at machine.c:65 #4 0x00001e87 in main (argc=3, argv=0xbffffb44) at main.c:24 (gdb) info scope cpu_locate_method Scope for cpu_locate_method: Symbol state is an argument at stack/frame offset 8, length 4. Symbol c is an argument at stack/frame offset 12, length 4. Symbol obj is an argument at stack/frame offset 16, length 4. Symbol sym is an argument at stack/frame offset 20, length 4. Symbol mod is an argument at stack/frame offset 24, length 4. Symbol missing is an argument at stack/frame offset 28, length 4. Symbol mo is a local variable at frame offset -12, length 4. (gdb) info symbol mo No symbol matches mo. (gdb) info symbol Argument required (address). (gdb) info args state = (rstate) 0x500c50 c = (cpu) 0x501060 obj = 4506212 sym = 239 mod = (OBJECT *) 0xbffff9b0 missing = (int *) 0xbffff9ac (gdb) info frame Stack level 0, frame at 0xbffff970: eip = 0x79da in cpu_locate_method (cpu_instructions.c:133); saved eip 0x7b4d called by frame at 0xbffff9d0 source language c. Arglist at 0xbffff968, args: state=0x500c50, c=0x501060, obj=4506212, sym=239, mod=0xbffff9b0, missing=0xbffff9ac Locals at 0xbffff968, Previous frame's sp is 0xbffff970 Saved registers: ebx at 0xbffff964, ebp at 0xbffff968, eip at 0xbffff96c (gdb)