Code:
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
* frame #0: 0x00007fff6dceeb66 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007fff6deb9080 libsystem_pthread.dylib`pthread_kill + 333
frame #2: 0x00007fff6dc4a1ae libsystem_c.dylib`abort + 127
frame #3: 0x00007fff6dc4a321 libsystem_c.dylib`abort_report_np + 177
frame #4: 0x00007fff6dc6ebf5 libsystem_c.dylib`__chk_fail + 48
frame #5: 0x00007fff6dc6ec05 libsystem_c.dylib`__chk_fail_overlap + 16
frame #6: 0x00007fff6dc6ec27 libsystem_c.dylib`__chk_overlap + 34
frame #7: 0x00007fff6dc6ee01 libsystem_c.dylib`__strcpy_chk + 64
frame #8: 0x0000000100090bfe circle`generic_find [inlined] get_number at handler.c:602 [opt]
frame #9: 0x0000000100090b9d circle`generic_find(arg=<unavailable>, bitvector=44, ch=0x0000000103b600d0, tar_ch=0x00007ffeefbf2bb8, tar_obj=0x00007ffeefbf2bc8) at handler.c:1359 [opt]
frame #10: 0x000000010001657e circle`do_get(ch=0x0000000103b600d0, argument=<unavailable>, cmd=<unavailable>, subcmd=<unavailable>) at act.item.c:355 [opt]
frame #11: 0x00000001000a0707 circle`command_interpreter(ch=0x0000000103b600d0, argument=<unavailable>) at interpreter.c:586 [opt]
frame #12: 0x000000010004e20c circle`game_loop(local_mother_desc=3) at comm.c:904 [opt]
frame #13: 0x000000010004c383 circle`main [inlined] init_game(local_port=<unavailable>) at comm.c:541 [opt]
frame #14: 0x000000010004bf54 circle`main(argc=<unavailable>, argv=<unavailable>) at comm.c:352 [opt]
frame #15: 0x00007fff6db9e015 libdyld.dylib`start + 1
(lldb)
Code:
(lldb) frame select 8
circle was compiled with optimization - stepping may behave oddly; variables may not be available.
frame #8: 0x0000000100090bfe circle`generic_find [inlined] get_number at handler.c:602 [opt]
599 if ((ppos = strchr(*name, '.')) != NULL) {
600 *ppos++ = '\0';
601 strlcpy(number, *name, sizeof(number));
-> 602 strcpy(*name, ppos); /* strcpy: OK (always smaller) */
603
604 for (i = 0; *(number + i); i++)
605 if (!isdigit(*(number + i)))
(lldb) frame variable
(char [512]) number = "2"
(char *) ppos = 0x00007ffeefbf2772 "g"
(int) i = 0
(lldb) frame select 9
frame #9: 0x0000000100090b9d circle`generic_find(arg=<unavailable>, bitvector=44, ch=0x0000000103b600d0, tar_ch=0x00007ffeefbf2bb8, tar_obj=0x00007ffeefbf2bc8) at handler.c:1359 [opt]
1356
1357 if (!*name)
1358 return (0);
-> 1359 if (!(number = get_number(&name)))
1360 return (0);
1361
1362 if (IS_SET(bitvector, FIND_CHAR_ROOM)) { /* Find person in room */
(lldb) frame variable
(char *) arg = <variable not available>
(bitvector_t) bitvector = 44
(char_data *) ch = 0x0000000103b600d0
(char_data **) tar_ch = 0x00007ffeefbf2bb8
(obj_data **) tar_obj = 0x00007ffeefbf2bc8
(char [512]) name_val = "bag"
(char *) name = 0x0000006700676162 ""
(int) number = <variable not available>
(int) i = <variable not available>
(int) found = <variable not available>
(lldb) frame select 10
frame #10: 0x000000010001657e circle`do_get(ch=0x0000000103b600d0, argument=<unavailable>, cmd=<unavailable>, subcmd=<unavailable>) at act.item.c:355 [opt]
352 }
353 cont_dotmode = find_all_dots(arg2);
354 if (cont_dotmode == FIND_INDIV) {
-> 355 mode = generic_find(arg2, FIND_OBJ_EQUIP | FIND_OBJ_INV | FIND_OBJ_ROOM, ch, &tmp_char, &cont);
356 if (!cont)
357 send_to_char(ch, "You don't have %s %s.\r\n", AN(arg2), arg2);
358 else if (GET_OBJ_TYPE(cont) != ITEM_CONTAINER)
(lldb) frame variable
(char_data *) ch = 0x0000000103b600d0
(char *) argument = <variable not available>
(int) cmd = <variable not available>
(int) subcmd = <variable not available>
(char [512]) arg1 = "all"
(char [512]) arg2 = "2.bag"
(char [512]) arg3 = ""
(int) found = 0
(int) cont_dotmode = 0
(char_data *) tmp_char = 0x0000000000000000
(obj_data *) cont = 0x0000000000000000
(int) mode = <register rax is not available>
(int) amount = 1
(lldb) frame select 11
frame #11: 0x00000001000a0707 circle`command_interpreter(ch=0x0000000103b600d0, argument=<unavailable>) at interpreter.c:586 [opt]
583 send_to_char(ch, "No way! You're fighting for your life!\r\n");
584 break;
585 } else if (no_specials || !special(ch, cmd, line))
-> 586 ((*complete_cmd_info[cmd].command_pointer) (ch, line, cmd, complete_cmd_info[cmd].subcmd));
587 }
588
589 /* Routines to handle aliasing. */
(lldb) frame variable
(char_data *) ch = 0x0000000103b600d0
(char *) argument = <variable not available>
(char [512]) arg = "get"
(char *) line = 0x00007ffeefbf3673 " all 2.bag"
(int) cmd = 499
(int) length = <no location, value may have been optimized out>
(lldb) frame select 12
frame #12: 0x000000010004e20c circle`game_loop(local_mother_desc=3) at comm.c:904 [opt]
901 d->has_prompt = TRUE; /* To get newline before next cmd output. */
902 else if (perform_alias(d, comm, sizeof(comm))) /* Run it through aliasing system */
903 get_from_q(&d->input, comm, &aliased);
-> 904 command_interpreter(d->character, comm); /* Send it to interpreter */
905 }
906 }
907
(lldb) frame variable
(socket_t) local_mother_desc = 3
(char [512]) comm = "get all 2.bag"
(timeval) last_time = (tv_sec = 1592395699, tv_usec = 417333)
(fd_set) input_set = {
fds_bits = {
[0] = 16
[1] = 0
[2] = 0
[3] = 0
[4] = 0
[5] = 0
[6] = 0
[7] = 0
[8] = 0
[9] = 0
[10] = 0
[11] = 0
[12] = 0
[13] = 0
[14] = 0
[15] = 0
[16] = 0
[17] = 0
[18] = 0
[19] = 0
[20] = 0
[21] = 0
[22] = 0
[23] = 0
[24] = 0
[25] = 0
[26] = 0
[27] = 0
[28] = 0
[29] = 0
[30] = 0
[31] = 0
}
}
(int) maxdesc = <variable not available>
(descriptor_data *) d = 0x0000000000000000
(timeval) before_sleep = (tv_sec = 1592395699, tv_usec = 319276)
(int) missed_pulses = <variable not available>
(timeval) now = (tv_sec = 1592395699, tv_usec = 420435)
(timeval) timeout = (tv_sec = 0, tv_usec = 0)
(fd_set) exc_set = {
fds_bits = {
[0] = 0
[1] = 0
[2] = 0
[3] = 0
[4] = 0
[5] = 0
[6] = 0
[7] = 0
[8] = 0
[9] = 0
[10] = 0
[11] = 0
[12] = 0
[13] = 0
[14] = 0
[15] = 0
[16] = 0
[17] = 0
[18] = 0
[19] = 0
[20] = 0
[21] = 0
[22] = 0
[23] = 0
[24] = 0
[25] = 0
[26] = 0
[27] = 0
[28] = 0
[29] = 0
[30] = 0
[31] = 0
}
}
(fd_set) output_set = {
fds_bits = {
[0] = 16
[1] = 0
[2] = 0
[3] = 0
[4] = 0
[5] = 0
[6] = 0
[7] = 0
[8] = 0
[9] = 0
[10] = 0
[11] = 0
[12] = 0
[13] = 0
[14] = 0
[15] = 0
[16] = 0
[17] = 0
[18] = 0
[19] = 0
[20] = 0
[21] = 0
[22] = 0
[23] = 0
[24] = 0
[25] = 0
[26] = 0
[27] = 0
[28] = 0
[29] = 0
[30] = 0
[31] = 0
}
}
(descriptor_data *) next_d = 0x0000000000000000
(int) aliased = 0
(fd_set) null_set = <no location, value may have been optimized out>
(timeval) opt_time = <no location, value may have been optimized out>
(timeval) process_time = <no location, value may have been optimized out>
(timeval) temp_time = <no location, value may have been optimized out>