mirror of
https://github.com/fluffos/fluffos
synced 2026-08-12 18:26:06 -04:00
* docs: add local full-text search and a contributor README Add @easyops-cn/docusaurus-search-local to the Docusaurus site so the docs get an offline search bar (index built at build time, no external service). English and zh-CN pages are both indexed, and matched terms are highlighted on the target page. Add docs/README.md describing the Docusaurus setup, local dev/build commands, search behavior, directory layout, and gotchas; exclude it from the published site alongside CLAUDE.md. Point the root README's docs/ entry at it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE * docs: remove dead framework leftovers, fix index generation, complete the nav Delete the VitePress (.vitepress/) and Jekyll (_layouts/, css/) leftovers, the one-shot migration scripts (fix_md_header.py, fix_seealso.py), and the stale keywords.json snapshot; prune the matching .gitignore entries and docusaurus exclude patterns. Rewrite gen_index.py for Docusaurus: it emitted dead .html links and legacy 'layout: doc' frontmatter, choked on non-markdown entries, and dropped nested categories — regenerating an index would have broken it. It now emits the extension-less links the site actually uses, links nested category indexes (restoring apply/* on the zh-CN index), and refuses to run on the docs root. Fix update_index.sh's copy-paste titles (zh-CN efun/build were titled 'APPLY'), stop it clobbering the hand-written lpc/index.md, and cover cli/. Regenerated indexes pick up the missing driver/ffi-plan entry. add_missing_efuns.py now takes the keywords.json path as an argument instead of requiring a stale copy. Move CNAME and the Google site-verification file into static/ so they actually reach the published build output. Complete the sidebar: link the CLI category to cli/index and add the missing portbind/symbol/generate_keywords pages, and expose the previously orphaned stdlib section under Reference. Promote onBrokenLinks to 'throw' now the build is warning-free, and drop the empty Demo section from the landing page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE * docs: strip legacy 'layout: doc' frontmatter from all pages Mechanical sweep removing the Jekyll-era 'layout: doc' line from every doc page's frontmatter (Docusaurus ignores it), and the matching line from the templates in docs/CLAUDE.md so new pages don't reintroduce it. No content changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE --------- Co-authored-by: Claude <noreply@anthropic.com>
1008 lines
49 KiB
Markdown
1008 lines
49 KiB
Markdown
---
|
|
title: cli / lpcc
|
|
---
|
|
|
|
# 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.
|
|
```
|