cli / lpcc
lpcc
is a command line tool to dump compiled LPC code, it is useful for understanding how FluffOS compiles LPC code.
Usage
bash
./lpcc config_file lpc_file
Example output
bash
$ ./lpcc etc/config.test ../test.c
Processing config file: etc/config.test
maximum local variables: invalid new value, resetting to default.
living hash table size: invalid new value, resetting to default.
New Debug log location: "log/debug.log".
Execution root: ./
Initializing internal stuff ....
Event backend in use: epoll
Loading simul_efun file : /single/simul_efun
/std/base64.c line 56: Warning: Unused local variable 'p'
}
^
/std/base64.c line 56: Warning: Unused local variable 'rlen'
}
^
/std/number_string.c line 54: Warning: Unused local variable 'parts'
}
^
/std/number_string.c line 54: Warning: Unused local variable 'part'
}
^
Loading master file: /single/master
NAME: /single/master.c
INHERITS:
name fio vio
---------------- --- ---
inherit/master/valid.c 0 0
FUNCTIONS:
name offset mods flags fio # locals # args # def args
--------------------- ------ ---- ------- --- -------- ------ ----------
0: get_inherit_called 0 +-- i-s---- 0
1: valid_shadow 0 +-- i-s---- 1
2: valid_author 0 +-- i-s---- 2
3: valid_override 0 +-- i-s---- 3
4: valid_seteuid 0 +-- i-s---- 4
5: valid_domain 0 +-- i-s---- 5
6: valid_socket 0 +-- i-s---- 6
7: valid_write 0 +-- i-s---- 7
8: valid_read 0 +-- i-s---- 8
9: valid_bind 0 +-- i-s---- 9
10: valid_hide 0 +-- i-s---- 10
11: create 0 +-- i-s---- 11
12: clear_last_error 0 +-- --s---- 0 0 0
13: trace_to_last_assert 1 --- --s---- 2 0 0
14: catch_tell 2 +-- --s---- 0 1 0
15: compile_object 3 +-- --s---- 0 1 0
16: update_file 4 --- --s---- 3 1 0
17: log_error 5 +-- --s---- 0 2 0
18: save_ed_setup 6 +-- --s---- 1 2 0
19: retrieve_ed_setup 7 +-- --s---- 2 1 0
20: destruct_environment_of 8 +-- --s---- 0 1 0
21: make_path_absolute 9 +-- --s---- 0 1 0
22: get_root_uid 10 +-- --s---- 0 0 0
23: get_bb_uid 11 +-- --s---- 0 0 0
24: privs_file 12 +-- --s---- 0 1 0
25: error_handler 13 --- --s---- 2 2 0
26: get_include_path 14 +-- --s---- 0 1 0
27: valid_database 15 +-- --s---- 0 3 0
28: object_name 16 +-- --s---- 0 1 0
29: get_last_error 17 +-- --s---- 0 0 0
30: domain_file 18 +-- --s---- 0 1 0
31: creator_file 19 +-- --s---- 0 1 0
32: author_file 20 +-- --s---- 0 1 0
33: flag 21 +-- --s---- 1 1 0
34: connect 22 +-- --s---- 2 0 0
35: crash 23 --- --s---- 1 3 0
36: epilog 24 +-- --s---- 1 1 0
37: preload 25 +-- --s---- 2 1 0
38: #global_init# 26 --- --s---- 0 0 0
;;; inherit/master/valid.c
VARIABLES:
0: public int inherit_called
STRINGS:
0: inherit/master/valid.c
1: include/globals.h
2: include/tests.h
3: Root
4: query_prevent_shadow
5: /single/simul_efun
6: move_object
7: /inherit/base
DISASSEMBLY:
;; Function: int get_inherit_called()
0000: 43 00 00 global ; inherit_called(0)
0003: 2E return ;
; inherit/master/valid.c:10
;; Function: void create()
0004: 2F return_zero ;
; inherit/master/valid.c:10
;; Function: int valid_shadow(object)
0005: 3F 00 local ; LV0
0007: 04 B9 01 F_EFUN1 ; EFUN: getuid(441)
000a: 0E 03 short_string ; "Root"
000c: 13 04 00 branch_ne ; 0004 (0011)
000f: 10 const1 ;
0010: 2E return ;
; inherit/master/valid.c:20
0011: 3C 00 transfer_local ; LV0
0013: 02 02 04 40 F_PUSH ; push string 4, number 0
0017: 04 8F 00 F_EFUN1 ; EFUN: previous_object(143)
001a: 07 87 00 03 F_EFUNV ; EFUN: call_other(135)
001e: 17 03 00 branch_when_zero ; 0003 (0022)
0021: 2F return_zero ;
0022: 10 const1 ;
0023: 2E return ;
0024: 2F return_zero ;
; inherit/master/valid.c:24
;; Function: int valid_author(string)
0025: 10 const1 ;
0026: 2E return ;
; inherit/master/valid.c:24
;; Function: int valid_override(string,string)
0027: 02 02 C0 05 F_PUSH ; push local 0, string 5
002b: 13 04 00 branch_ne ; 0004 (0030)
002e: 10 const1 ;
002f: 2E return ;
; inherit/master/valid.c:45
0030: 3C 01 transfer_local ; LV1
0032: 0E 06 short_string ; "move_object"
0034: 30 == ;
0035: 26 07 00 && ; 0007 (003d)
0038: 02 02 C0 07 F_PUSH ; push local 0, string 7
003c: 31 != ;
003d: 17 03 00 branch_when_zero ; 0003 (0041)
0040: 2F return_zero ;
0041: 10 const1 ;
0042: 2E return ;
0043: 2F return_zero ;
; inherit/master/valid.c:48
;; Function: int valid_seteuid(object,string)
0044: 10 const1 ;
0045: 2E return ;
; inherit/master/valid.c:48
;; Function: int valid_domain(string)
0046: 10 const1 ;
0047: 2E return ;
; inherit/master/valid.c:48
;; Function: int valid_socket(object,string,mixed *)
0048: 10 const1 ;
0049: 2E return ;
; inherit/master/valid.c:48
;; Function: int valid_write(string,mixed,string)
004a: 44 00 00 global_lvalue ; inherit_called(0)
004d: 36 inc(x) ;
004e: 10 const1 ;
004f: 2E return ;
; inherit/master/valid.c:90
;; Function: int valid_read(string,mixed,string)
0050: 44 00 00 global_lvalue ; inherit_called(0)
0053: 36 inc(x) ;
0054: 10 const1 ;
0055: 2E return ;
; inherit/master/valid.c:99
;; Function: int valid_bind()
0056: 44 00 00 global_lvalue ; inherit_called(0)
0059: 36 inc(x) ;
005a: 10 const1 ;
005b: 2E return ;
; inherit/master/valid.c:104
;; Function: int valid_hide()
005c: 44 00 00 global_lvalue ; inherit_called(0)
005f: 36 inc(x) ;
0060: 10 const1 ;
0061: 2E return ;
; inherit/master/valid.c:110
;; Function: void #global_init#()
0062: 0F const0 ;
0063: 44 00 00 global_lvalue ; inherit_called(0)
0066: 61 (void)assign ;
0067: 2F return_zero ;
; inherit/master/valid.c:8
;;; *** Line Number Info ***
absolute line -> (file, line) table:
0 lines from 1 [inherit/master/valid.c]
11 lines from 2 [include/globals.h]
27 lines from 3 [include/tests.h]
25 lines from 2 [include/globals.h]
6 lines from 1 [inherit/master/valid.c]
11 lines from 2 [include/globals.h]
27 lines from 3 [include/tests.h]
25 lines from 2 [include/globals.h]
108 lines from 1 [inherit/master/valid.c]
address -> absolute line table:
0000-0004: 136
0005-0010: 146
0011-0026: 150
0027-002f: 171
0030-0049: 174
004a-004f: 216
0050-0055: 225
0056-005b: 230
005c-0061: 236
0062-0067: 134
;;; single/master.c
VARIABLES:
0: public nosave int has_error
1: public nosave string last_error
STRINGS:
0: single/master.c
1: include/globals.h
2: include/tests.h
3:
4: function
5: __assert
6: %O
7: test
8: /command/tests
9: main
10: speed
11: /command/speed
12: The only supproted flag is 'test
13: '.\n
14: /clone/login
15: It looks like someone is working
16: MASTER: compile_object is called
17: \n
18: /test/virtual
19: /single/void
20: Master object shouts: Damn!\nMast
21: /etc/preload
22: .c
23: Preloading :
24: ...
25: ??
26: \nError
27: when loading
28: (
29: .
30: )\n
31: /log/compile
32: .edrc
33: %d
34: The object containing you was de
35: move
36: query_cwd
37: Root
38: Backbone
39: /single/simul_efun
40: creator_file
41: domain_file
42: author_file
43: program
44: /single/tests/efuns/call_out.c
45: error
46: *Too long evaluation. Execution
47: *Error caught\n
48: Error: %s\nCurrent object: %O\nCur
49: object
50: No current object
51: No current program
52: file
53: line
54: trace
55: Line: %O File: %O Object: %O Pr
56: No object
57: No program
58: /log/log
59: /clone/mgip1
60: /clone/mgip1.c
61: /include/m_gip1
62: /include
63: /clone/mgip2
64: /clone/mgip2.c
65: /include/m_gip2
66: /clone/mgip3
67: /clone/mgip3.c
68: /clone/mgip4
69: /clone/mgip4.c
70: :DEFAULT:
71: MASTER valid_database called:
72: ob:%O action:%O info:%O
73: name
DISASSEMBLY:
;; Function: string clear_last_error()
0000: 0E 03 short_string ; ""
0002: 44 02 00 global_lvalue ; last_error(2)
0005: 61 (void)assign ;
0006: 2F return_zero ;
; single/master.c:12
;; Function: mapping * trace_to_last_assert()
0007: 03 49 01 F_EFUN0 ; EFUN: dump_trace(329)
000a: 62 00 (void)assign_local ; LV0
; single/master.c:17
000c: 0F const0 ;
000d: 62 01 (void)assign_local ; LV1
000f: 19 1A 00 branch ; 001a (002a)
; single/master.c:18
0012: 02 05 40 47 04 C1 C0 F_PUSH ; push number 0, number 7, string 4, local 1, local 0
0019: 47 index ;
001a: 47 index ;
001b: 4B nn_range ;
001c: 0E 05 short_string ; "__assert"
001e: 13 09 00 branch_ne ; 0009 (0028)
; single/master.c:19
0021: 02 03 40 C1 C0 F_PUSH ; push number 0, local 1, local 0
0026: 4B nn_range ;
0027: 2E return ;
; single/master.c:20
0028: 23 01 loop_incr ; LV1
; single/master.c:22
002a: 02 02 C1 C0 F_PUSH ; push local 1, local 0
002e: 04 91 00 F_EFUN1 ; EFUN: sizeof(145)
0031: 1D 20 00 bbranch_lt ; 0020 (0012)
; single/master.c:18
0034: 3C 00 transfer_local ; LV0
0036: 2E return ;
0037: 2F return_zero ;
; single/master.c:23
;; Function: string get_last_error()
0038: 02 02 82 03 F_PUSH ; push global 2, string 3
003c: 13 0D 00 branch_ne ; 000d (004a)
; single/master.c:27
003f: 0E 06 short_string ; "%O"
0041: 2C 0D 00 00 F_CALL_FUNCTION_BY_ADDRESS ; trace_to_last_assert, pushed_args:0
0045: 07 0E 01 02 F_EFUNV ; EFUN: sprintf(270)
0049: 2E return ;
; single/master.c:28
004a: 43 02 00 global ; last_error(2)
004d: 2E return ;
; single/master.c:30
;; Function: void flag(string)
004e: 3F 00 local ; LV0
0050: switch
type: 1f table: 00af-00c3 deflt: 009e
0058: 27 0C 00 catch ; 000c
005b: 02 02 08 09 F_PUSH ; push string 8, string 9
005f: 07 87 00 02 F_EFUNV ; EFUN: call_other(135)
0063: 01 pop ;
0064: 28 end_catch ;
0065: 62 01 (void)assign_local ; LV1
; single/master.c:37
0067: 3F 01 local ; LV1
0069: 17 0C 00 branch_when_zero ; 000c (0076)
; single/master.c:38
006c: 10 const1 ;
006d: 44 01 00 global_lvalue ; has_error(1)
0070: 61 (void)assign ;
; single/master.c:39
0071: 3F 01 local ; LV1
0073: 04 C1 00 F_EFUN1 ; EFUN: write(193)
0076: 19 4C 00 branch ; 004c (00c3)
; single/master.c:40
0079: 27 0C 00 catch ; 000c
007c: 02 02 0B 09 F_PUSH ; push string 11, string 9
0080: 07 87 00 02 F_EFUNV ; EFUN: call_other(135)
0084: 01 pop ;
0085: 28 end_catch ;
0086: 62 01 (void)assign_local ; LV1
; single/master.c:44
0088: 3F 01 local ; LV1
008a: 17 0C 00 branch_when_zero ; 000c (0097)
; single/master.c:45
008d: 10 const1 ;
008e: 44 01 00 global_lvalue ; has_error(1)
0091: 61 (void)assign ;
; single/master.c:46
0092: 3F 01 local ; LV1
0094: 04 C1 00 F_EFUN1 ; EFUN: write(193)
; single/master.c:47
0097: 0F const0 ;
0098: 04 48 01 F_EFUN1 ; EFUN: shutdown(328)
009b: 19 27 00 branch ; 0027 (00c3)
; single/master.c:49
009e: 02 02 0C C0 F_PUSH ; push string 12, local 0
00a2: 63 + ;
00a3: 0E 0D short_string ; "'.\n"
00a5: 63 + ;
00a6: 04 C1 00 F_EFUN1 ; EFUN: write(193)
00a9: 19 19 00 branch ; 0019 (00c3)
00ac: 19 16 00 branch ; 0016 (00c3)
; single/master.c:52
switch table (for 0050)
"test" 0058
"speed" 0079
; single/master.c:35
00c3: 43 01 00 global ; has_error(1)
00c6: 17 07 00 branch_when_zero ; 0007 (00ce)
00c9: 0C 01 -byte ; -1
00cb: 04 48 01 F_EFUN1 ; EFUN: shutdown(328)
00ce: 2F return_zero ;
; single/master.c:55
;; Function: void catch_tell(string)
00cf: 10 const1 ;
00d0: 44 01 00 global_lvalue ; has_error(1)
00d3: 61 (void)assign ;
00d4: 2F return_zero ;
; single/master.c:60
;; Function: object connect()
00d5: 27 0B 00 catch ; 000b
00d8: 0E 0E short_string ; "/clone/login"
00da: 07 8C 00 01 F_EFUNV ; EFUN: new(140)
00de: 62 00 (void)assign_local ; LV0
00e0: 28 end_catch ;
00e1: 62 01 (void)assign_local ; LV1
; single/master.c:68
00e3: 3F 01 local ; LV1
00e5: 17 12 00 branch_when_zero ; 0012 (00f8)
; single/master.c:70
00e8: 0E 0F short_string ; "It looks like someone is work"
00ea: 04 C1 00 F_EFUN1 ; EFUN: write(193)
; single/master.c:71
00ed: 3F 01 local ; LV1
00ef: 04 C1 00 F_EFUN1 ; EFUN: write(193)
; single/master.c:72
00f2: 03 89 00 F_EFUN0 ; EFUN: this_object(137)
00f5: 04 92 00 F_EFUN1 ; EFUN: destruct(146)
; single/master.c:73
00f8: 3C 00 transfer_local ; LV0
00fa: 2E return ;
00fb: 2F return_zero ;
; single/master.c:75
;; Function: mixed compile_object(string)
00fc: 02 02 10 C0 F_PUSH ; push string 16, local 0
0100: 63 + ;
0101: 0E 11 short_string ; "\n"
0103: 63 + ;
0104: 04 C1 00 F_EFUN1 ; EFUN: write(193)
; single/master.c:85
0107: 3C 00 transfer_local ; LV0
0109: 0E 12 short_string ; "/test/virtual"
010b: 13 0A 00 branch_ne ; 000a (0116)
; single/master.c:86
010e: 02 02 13 41 F_PUSH ; push string 19, number 1
0112: 05 C6 00 F_EFUN2 ; EFUN: find_object(198)
0115: 2E return ;
0116: 2F return_zero ;
0117: 2F return_zero ;
; single/master.c:87
;; Function: void crash(string,object,object)
0118: 03 BE 00 F_EFUN0 ; EFUN: users(190)
011b: 1E 00 03 foreach ; (array | string) local 3
011e: 19 09 00 branch ; 0009 (0128)
; single/master.c:98
0121: 02 02 C3 14 F_PUSH ; push local 3, string 20
0125: 05 C2 00 F_EFUN2 ; EFUN: tell_object(194)
0128: 1F 08 00 next_foreach ; 0008 (0121)
012b: 2F return_zero ;
; single/master.c:99
;; Function: string * update_file(string)
012c: 3C 00 transfer_local ; LV0
012e: 04 E6 00 F_EFUN1 ; EFUN: read_file(230)
0131: 62 02 (void)assign_local ; LV2
; single/master.c:124
0133: 3F 02 local ; LV2
0135: 18 06 00 branch_when_non_zero ; 0006 (013c)
; single/master.c:125
0138: 11 00 00 aggregate ; 0
013b: 2E return ;
; single/master.c:126
013c: 3C 02 transfer_local ; LV2
013e: 0E 11 short_string ; "\n"
0140: 05 95 00 F_EFUN2 ; EFUN: explode(149)
0143: 62 01 (void)assign_local ; LV1
; single/master.c:128
0145: 0F const0 ;
0146: 62 03 (void)assign_local ; LV3
0148: 19 18 00 branch ; 0018 (0161)
; single/master.c:129
014b: 02 03 40 C3 C1 F_PUSH ; push number 0, local 3, local 1
0150: 47 index ;
0151: 47 index ;
0152: 0B 23 byte ; 35
0154: 13 0A 00 branch_ne ; 000a (015f)
; single/master.c:130
0157: 02 02 40 C3 F_PUSH ; push number 0, local 3
015b: 40 01 local_lvalue ; LV1
015d: 48 index_lvalue ;
015e: 61 (void)assign ;
; single/master.c:131
015f: 23 03 loop_incr ; LV3
; single/master.c:133
0161: 02 02 C3 C1 F_PUSH ; push local 3, local 1
0165: 04 91 00 F_EFUN1 ; EFUN: sizeof(145)
0168: 1D 1E 00 bbranch_lt ; 001e (014b)
; single/master.c:129
016b: 3C 01 transfer_local ; LV1
016d: 2E return ;
016e: 2F return_zero ;
; single/master.c:134
;; Function: string * epilog(int)
016f: 0E 15 short_string ; "/etc/preload"
0171: 2C 10 00 01 F_CALL_FUNCTION_BY_ADDRESS ; update_file, pushed_args:1
0175: 62 01 (void)assign_local ; LV1
; single/master.c:143
0177: 3C 01 transfer_local ; LV1
0179: 2E return ;
; single/master.c:144
;; Function: void preload(string)
017a: 02 02 C0 16 F_PUSH ; push local 0, string 22
017e: 63 + ;
017f: 04 E4 00 F_EFUN1 ; EFUN: file_size(228)
0182: 0C 01 -byte ; -1
0184: 13 03 00 branch_ne ; 0003 (0188)
0187: 2F return_zero ;
; single/master.c:153
0188: 03 F2 00 F_EFUN0 ; EFUN: time(242)
018b: 62 01 (void)assign_local ; LV1
; single/master.c:156
018d: 02 02 17 C0 F_PUSH ; push string 23, local 0
0191: 63 + ;
0192: 0E 18 short_string ; "..."
0194: 63 + ;
0195: 04 C1 00 F_EFUN1 ; EFUN: write(193)
; single/master.c:157
0198: 27 0C 00 catch ; 000c
019b: 02 02 C0 19 F_PUSH ; push local 0, string 25
019f: 07 87 00 02 F_EFUNV ; EFUN: call_other(135)
01a3: 01 pop ;
01a4: 28 end_catch ;
01a5: 62 02 (void)assign_local ; LV2
; single/master.c:158
01a7: 3F 02 local ; LV2
01a9: 17 16 00 branch_when_zero ; 0016 (01c0)
; single/master.c:159
01ac: 02 02 1A C2 F_PUSH ; push string 26, local 2
01b0: 63 + ;
01b1: 0E 1B short_string ; " when loading "
01b3: 63 + ;
01b4: 3F 00 local ; LV0
01b6: 63 + ;
01b7: 0E 11 short_string ; "\n"
01b9: 63 + ;
01ba: 04 C1 00 F_EFUN1 ; EFUN: write(193)
01bd: 19 20 00 branch ; 0020 (01de)
; single/master.c:160
01c0: 03 F2 00 F_EFUN0 ; EFUN: time(242)
01c3: 3F 01 local ; LV1
01c5: 64 subtract ;
01c6: 62 01 (void)assign_local ; LV1
; single/master.c:162
01c8: 02 03 1C C1 7C F_PUSH ; push string 28, local 1, number 60
01cd: 66 / ;
01ce: 63 + ;
01cf: 0E 1D short_string ; "."
01d1: 63 + ;
01d2: 02 02 C1 7C F_PUSH ; push local 1, number 60
01d6: 67 % ;
01d7: 63 + ;
01d8: 0E 1E short_string ; ")\n"
01da: 63 + ;
01db: 04 C1 00 F_EFUN1 ; EFUN: write(193)
01de: 2F return_zero ;
; single/master.c:163
;; Function: void log_error(string,string)
01df: 0E 1F short_string ; "/log/compile"
01e1: 3C 01 transfer_local ; LV1
01e3: 0F const0 ;
01e4: 06 E1 00 F_EFUN3 ; EFUN: write_file(225)
01e7: 01 pop ;
01e8: 2F return_zero ;
; single/master.c:172
;; Function: int save_ed_setup(object,int)
01e9: 3F 01 local ; LV1
01eb: 04 CD 00 F_EFUN1 ; EFUN: intp(205)
01ee: 18 03 00 branch_when_non_zero ; 0003 (01f2)
01f1: 2F return_zero ;
; single/master.c:183
01f2: 3C 00 transfer_local ; LV0
01f4: 04 B9 01 F_EFUN1 ; EFUN: getuid(441)
01f7: 71 15 00 01 simul_efun ; "user_path" args: 1
01fb: 0E 20 short_string ; ".edrc"
01fd: 63 + ;
01fe: 62 02 (void)assign_local ; LV2
; single/master.c:187
0200: 3F 02 local ; LV2
0202: 04 EA 00 F_EFUN1 ; EFUN: rm(234)
0205: 01 pop ;
; single/master.c:191
0206: 3C 02 transfer_local ; LV2
0208: 3C 01 transfer_local ; LV1
020a: 0E 03 short_string ; ""
020c: 63 + ;
020d: 0F const0 ;
020e: 06 E1 00 F_EFUN3 ; EFUN: write_file(225)
0211: 2E return ;
0212: 2F return_zero ;
; single/master.c:192
;; Function: int retrieve_ed_setup(object)
0213: 3C 00 transfer_local ; LV0
0215: 04 B9 01 F_EFUN1 ; EFUN: getuid(441)
0218: 71 15 00 01 simul_efun ; "user_path" args: 1
021c: 0E 20 short_string ; ".edrc"
021e: 63 + ;
021f: 62 01 (void)assign_local ; LV1
; single/master.c:204
0221: 3F 01 local ; LV1
0223: 04 E4 00 F_EFUN1 ; EFUN: file_size(228)
0226: 0F const0 ;
0227: 32 <= ;
0228: 17 03 00 branch_when_zero ; 0003 (022c)
022b: 2F return_zero ;
; single/master.c:208
022c: 3C 01 transfer_local ; LV1
022e: 04 E6 00 F_EFUN1 ; EFUN: read_file(230)
0231: 0E 21 short_string ; "%d"
0233: 72 01 sscanf ; 1
0235: 40 02 local_lvalue ; LV2
0237: 61 (void)assign ;
0238: 01 pop ;
; single/master.c:211
0239: 3C 02 transfer_local ; LV2
023b: 2E return ;
023c: 2F return_zero ;
; single/master.c:212
;; Function: void destruct_environment_of(object)
023d: 3F 00 local ; LV0
023f: 04 11 01 F_EFUN1 ; EFUN: interactive(273)
0242: 18 03 00 branch_when_non_zero ; 0003 (0246)
0245: 2F return_zero ;
; single/master.c:220
0246: 02 02 C0 22 F_PUSH ; push local 0, string 34
024a: 05 C2 00 F_EFUN2 ; EFUN: tell_object(194)
; single/master.c:223
024d: 3C 00 transfer_local ; LV0
024f: 02 02 23 13 F_PUSH ; push string 35, string 19
0253: 07 87 00 03 F_EFUNV ; EFUN: call_other(135)
0257: 01 pop ;
0258: 2F return_zero ;
; single/master.c:224
;; Function: string make_path_absolute(string)
0259: 0F const0 ;
025a: 04 8E 00 F_EFUN1 ; EFUN: this_player(142)
025d: 0E 24 short_string ; "query_cwd"
025f: 07 87 00 02 F_EFUNV ; EFUN: call_other(135)
0263: 3C 00 transfer_local ; LV0
0265: 71 18 00 02 simul_efun ; "resolve_path" args: 2
0269: 62 00 (void)assign_local ; LV0
; single/master.c:231
026b: 3C 00 transfer_local ; LV0
026d: 2E return ;
; single/master.c:232
;; Function: string get_root_uid()
026e: 0E 25 short_string ; "Root"
0270: 2E return ;
; single/master.c:232
;; Function: string get_bb_uid()
0271: 0E 26 short_string ; "Backbone"
0273: 2E return ;
; single/master.c:232
;; Function: string creator_file(string)
0274: 02 02 27 28 F_PUSH ; push string 39, string 40
0278: 3C 00 transfer_local ; LV0
027a: 07 87 00 03 F_EFUNV ; EFUN: call_other(135)
027e: 2E return ;
; single/master.c:247
;; Function: string domain_file(string)
027f: 02 02 27 29 F_PUSH ; push string 39, string 41
0283: 3C 00 transfer_local ; LV0
0285: 07 87 00 03 F_EFUNV ; EFUN: call_other(135)
0289: 2E return ;
; single/master.c:252
;; Function: string author_file(string)
028a: 02 02 27 2A F_PUSH ; push string 39, string 42
028e: 3C 00 transfer_local ; LV0
0290: 07 87 00 03 F_EFUNV ; EFUN: call_other(135)
0294: 2E return ;
; single/master.c:257
;; Function: string privs_file(string)
0295: 3C 00 transfer_local ; LV0
0297: 2E return ;
; single/master.c:261
;; Function: void error_handler(mapping,int)
0298: 02 02 2B C0 F_PUSH ; push string 43, local 0
029c: 47 index ;
029d: 0E 2C short_string ; "/single/tests/efuns/call_out."
029f: 30 == ;
02a0: 26 0A 00 && ; 000a (02ab)
; single/master.c:269
02a3: 02 02 2D C0 F_PUSH ; push string 45, local 0
02a7: 47 index ;
02a8: 0E 2E short_string ; "*Too long evaluation. Executi"
02aa: 30 == ;
02ab: 17 03 00 branch_when_zero ; 0003 (02af)
02ae: 2F return_zero ;
; single/master.c:270
02af: 10 const1 ;
02b0: 04 8E 00 F_EFUN1 ; EFUN: this_player(142)
02b3: 25 06 00 || ; 0006 (02ba)
02b6: 0F const0 ;
02b7: 04 8E 00 F_EFUN1 ; EFUN: this_player(142)
02ba: 62 02 (void)assign_local ; LV2
; single/master.c:275
02bc: 3F 01 local ; LV1
02be: 17 09 00 branch_when_zero ; 0009 (02c8)
02c1: 0E 2F short_string ; "*Error caught\n"
02c3: 62 03 (void)assign_local ; LV3
02c5: 19 06 00 branch ; 0006 (02cc)
; single/master.c:277
02c8: 0E 03 short_string ; ""
02ca: 62 03 (void)assign_local ; LV3
; single/master.c:278
02cc: 02 03 30 2D C0 F_PUSH ; push string 48, string 45, local 0
; single/master.c:285
02d1: 47 index ;
02d2: 02 02 31 C0 F_PUSH ; push string 49, local 0
02d6: 47 index ;
02d7: 25 04 00 || ; 0004 (02dc)
02da: 0E 32 short_string ; "No current object"
; single/master.c:280
02dc: 02 02 2B C0 F_PUSH ; push string 43, local 0
02e0: 47 index ;
02e1: 25 04 00 || ; 0004 (02e6)
02e4: 0E 33 short_string ; "No current program"
; single/master.c:281
02e6: 02 02 34 C0 F_PUSH ; push string 52, local 0
02ea: 47 index ;
02eb: 02 02 35 C0 F_PUSH ; push string 53, local 0
02ef: 47 index ;
; single/master.c:282
02f0: 0E 36 short_string ; "trace"
02f2: 3C 00 transfer_local ; LV0
02f4: 47 index ;
; single/master.c:283
02f5: 0F const0 ;
02f6: 70 05 01 24 00 (::) ; <functional, 1 args>: Code size: 36,
02fb: 02 03 37 35 C0 F_PUSH ; push string 55, string 53, local 0
; single/master.c:285
0300: 47 index ;
0301: 02 02 34 C0 F_PUSH ; push string 52, local 0
0305: 47 index ;
0306: 02 02 31 C0 F_PUSH ; push string 49, local 0
030a: 47 index ;
030b: 25 04 00 || ; 0004 (0310)
030e: 0E 38 short_string ; "No object"
0310: 02 02 2B C0 F_PUSH ; push string 43, local 0
0314: 47 index ;
0315: 25 04 00 || ; 0004 (031a)
0318: 0E 39 short_string ; "No program"
031a: 07 0E 01 05 F_EFUNV ; EFUN: sprintf(270)
031e: 2E return ;
031f: 07 2E 01 02 F_EFUNV ; EFUN: map(302)
0323: 0E 11 short_string ; "\n"
0325: 05 97 00 F_EFUN2 ; EFUN: implode(151)
0328: 07 0E 01 07 F_EFUNV ; EFUN: sprintf(270)
; single/master.c:284
032c: 40 03 local_lvalue ; LV3
032e: 60 (void)+= ;
; single/master.c:279
032f: 3F 03 local ; LV3
0331: 44 02 00 global_lvalue ; last_error(2)
0334: 61 (void)assign ;
; single/master.c:286
0335: 02 03 3A C3 40 F_PUSH ; push string 58, local 3, number 0
033a: 06 E1 00 F_EFUN3 ; EFUN: write_file(225)
033d: 01 pop ;
; single/master.c:287
033e: 3C 01 transfer_local ; LV1
0340: 6D ! ;
0341: 26 04 00 && ; 0004 (0346)
0344: 3F 02 local ; LV2
0346: 17 09 00 branch_when_zero ; 0009 (0350)
0349: 02 02 C2 C3 F_PUSH ; push local 2, local 3
034d: 05 C2 00 F_EFUN2 ; EFUN: tell_object(194)
0350: 2F return_zero ;
; single/master.c:288
;; Function: mixed get_include_path(string)
0351: 3C 00 transfer_local ; LV0
0353: switch
type: 3f table: 0380-03d0 deflt: 0377
035b: 02 02 3D 3E F_PUSH ; push string 61, string 62
035f: 11 02 00 aggregate ; 2
0362: 2E return ;
; single/master.c:297
0363: 0E 41 short_string ; "/include/m_gip2"
0365: 0E 3E short_string ; "/include"
0367: 11 02 00 aggregate ; 2
036a: 2E return ;
; single/master.c:300
036b: 02 02 3E 3D F_PUSH ; push string 62, string 61
036f: 11 02 00 aggregate ; 2
0372: 2E return ;
; single/master.c:303
0373: 11 00 00 aggregate ; 0
0376: 2E return ;
; single/master.c:306
0377: 0E 46 short_string ; ":DEFAULT:"
0379: 11 01 00 aggregate ; 1
037c: 2E return ;
037d: 19 52 00 branch ; 0052 (03d0)
; single/master.c:308
switch table (for 0353)
"/clone/mgip1" 035b
"/clone/mgip1.c" 035b
"/clone/mgip2" 0363
"/clone/mgip2.c" 0363
"/clone/mgip3" 036b
"/clone/mgip3.c" 036b
"/clone/mgip4" 0373
"/clone/mgip4.c" 0373
; single/master.c:293
03d0: 2F return_zero ;
; single/master.c:308
;; Function: int valid_database(object,string,mixed *)
03d1: 0E 47 short_string ; "MASTER valid_database called:"
03d3: 0E 48 short_string ; "ob:%O action:%O info:%O"
03d5: 3C 00 transfer_local ; LV0
03d7: 3C 01 transfer_local ; LV1
03d9: 3C 02 transfer_local ; LV2
03db: 07 0E 01 04 F_EFUNV ; EFUN: sprintf(270)
03df: 63 + ;
03e0: 0E 11 short_string ; "\n"
03e2: 63 + ;
03e3: 04 C1 00 F_EFUN1 ; EFUN: write(193)
03e6: 10 const1 ;
03e7: 2E return ;
; single/master.c:313
;; Function: string object_name(object)
03e8: 3C 00 transfer_local ; LV0
03ea: 0E 49 short_string ; "name"
03ec: 07 87 00 02 F_EFUNV ; EFUN: call_other(135)
03f0: 2E return ;
; single/master.c:320
;; Function: void #global_init#()
03f1: 2D 00 0C 00 00 call_inherited ; inherit/master/valid.c::#global_init# 12
03f6: 01 pop ;
; single/master.c:6
03f7: 0F const0 ;
03f8: 44 01 00 global_lvalue ; has_error(1)
03fb: 61 (void)assign ;
; single/master.c:8
03fc: 0E 03 short_string ; ""
03fe: 44 02 00 global_lvalue ; last_error(2)
0401: 61 (void)assign ;
0402: 2F return_zero ;
; single/master.c:9
;;; *** Line Number Info ***
absolute line -> (file, line) table:
0 lines from 1 [single/master.c]
11 lines from 2 [include/globals.h]
27 lines from 3 [include/tests.h]
25 lines from 2 [include/globals.h]
3 lines from 1 [single/master.c]
11 lines from 2 [include/globals.h]
27 lines from 3 [include/tests.h]
25 lines from 2 [include/globals.h]
319 lines from 1 [single/master.c]
address -> absolute line table:
0000-0006: 138
0007-000b: 143
000c-0011: 144
0012-0020: 145
0021-0027: 146
0028-0029: 148
002a-0033: 144
0034-0037: 149
0038-003e: 153
003f-0049: 154
004a-004d: 156
004e-0057: 161
0058-0066: 163
0067-006b: 164
006c-0070: 165
0071-0078: 166
0079-0087: 170
0088-008c: 171
008d-0091: 172
0092-0096: 173
0097-009d: 175
009e-00c2: 178
00c3-00ce: 181
00cf-00d4: 186
00d5-00e2: 194
00e3-00e7: 196
00e8-00ec: 197
00ed-00f1: 198
00f2-00f7: 199
00f8-00fb: 201
00fc-0106: 211
0107-010d: 212
010e-0117: 213
0118-0120: 224
0121-012b: 225
012c-0132: 250
0133-0137: 251
0138-013b: 252
013c-0144: 254
0145-014a: 255
014b-0156: 256
0157-015e: 257
015f-0160: 259
0161-016a: 255
016b-016e: 260
016f-0176: 269
0177-0179: 270
017a-0187: 279
0188-018c: 282
018d-0197: 283
0198-01a6: 284
01a7-01ab: 285
01ac-01bf: 286
01c0-01c7: 288
01c8-01de: 289
01df-01e8: 298
01e9-01f1: 309
01f2-01ff: 313
0200-0205: 317
0206-0212: 318
0213-0220: 330
0221-022b: 334
022c-0238: 337
0239-023c: 338
023d-0245: 346
0246-024c: 349
024d-0258: 350
0259-026a: 357
026b-0273: 358
0274-027e: 373
027f-0289: 378
028a-0294: 383
0295-0297: 387
0298-02a2: 395
02a3-02ae: 396
02af-02bb: 401
02bc-02c7: 403
02c8-02cb: 404
02cc-02cd: 411
02ce-02db: 406
02dc-02e5: 407
02e6-02ef: 408
02f0-02f4: 409
02f5-02fc: 411
02fd-030f: 410
0310-032b: 410
032c-032e: 405
032f-0334: 412
0335-033d: 413
033e-0350: 414
0351-035a: 419
035b-0362: 423
0363-036a: 426
036b-0372: 429
0373-0376: 432
0377-03d0: 434
03d1-03e7: 439
03e8-03f0: 446
03f1-03f6: 132
03f7-03fb: 134
03fc-0402: 135
Trace duration: 16888.575000 us, dumping 71 events to trace_lpcc.json in separate thread.
[thread 140189376706112d]: Dump trace successfully to file trace_lpcc.json, cost 1 ms.