当前位置: 首页 > news >正文

win10 做网站服务器吗wordpress 改为中文字体

win10 做网站服务器吗,wordpress 改为中文字体,网站先做前端还是后端,网站建设数据库类型系列文章目录 第十八章 QEMU系统仿真的机器创建分析实例 文章目录 系列文章目录第十八章 QEMU系统仿真的机器创建分析实例 前言一、QEMU是什么#xff1f;二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2.创建后期后端驱动qemu_create_late_backends()qtest_serv…系列文章目录 第十八章 QEMU系统仿真的机器创建分析实例 文章目录 系列文章目录第十八章 QEMU系统仿真的机器创建分析实例 前言一、QEMU是什么二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2.创建后期后端驱动qemu_create_late_backends()qtest_server_init()net_init_clients()netdev_init_modern()net_init_netdev()net_param_nic()net_init_client() 3.调试输出 总结 前言 本文以 QEMU 8.2.2 为例分析其作为系统仿真工具的工作过程并为读者展示各种 QEMU 系统仿真的启动配置实例。 本文读者需要具备一定的 QEMU 系统仿真使用经验并对 C 语言编程有一定了解。 一、QEMU是什么 QEMU 是一个通用且开源的机器模拟器和虚拟机。 其官方主页是https://www.qemu.org/ 二、QEMU系统仿真的机器创建分析实例 1.系统仿真的命令行参数 QEMU 作为系统仿真工具其入口代码在 system/main.c 文件中初始化函数 qemu_init() 的实现在 system/vl.c 文件中。 前文完成创建目标机器的过程分析本文将继续后续运行过程的分析读者需要对 QEMU 系统启动过程的程序代码有所了解相关内容可以参考《QEMU系统分析之启动篇》系列文章。 ..\qemu\8.2.2-qkd\qemu-system-x86_64.exe -cpu Penryn -M q35,accelwhpx,smmoff -m 6G -display sdl -audio sdl,modelhda -vga std -L data2.创建后期后端驱动 这部分代码在 system/vl.c 文件中实现如下 int qemu_init(int argc, char **argv) { .../** Beware, QOM objects created before this point miss global and* compat properties.** Global properties get set up by qdev_prop_register_global(),* called from user_register_global_props(), and certain option* desugaring. Also in CPU feature desugaring (buried in* parse_cpu_option()), which happens below this point, but may* only target the CPU type, which can only be created after* parse_cpu_option() returned the type.** Machine compat properties: object_set_machine_compat_props().* Accelerator compat props: object_set_accelerator_compat_props(),* called from do_configure_accelerator().*/machine_class MACHINE_GET_CLASS(current_machine);if (!qtest_enabled() machine_class-deprecation_reason) {warn_report(Machine type %s is deprecated: %s,machine_class-name, machine_class-deprecation_reason);}/** Create backends before creating migration objects, so that it can* check against compatibilities on the backend memories (e.g. postcopy* over memory-backend-file objects).*/qemu_create_late_backends(); ... }前文分析了加速器的配置过程本文继续完成创建后期后端驱动的过程。 主函数中如果设置了设置的机器类有已弃用原因的在终端输出弃用原因来提醒用户。 然后创建后期后端驱动。 qemu_create_late_backends() 函数 qemu_create_late_backends() 代码如下 static void qemu_create_late_backends(void) {if (qtest_chrdev) {qtest_server_init(qtest_chrdev, qtest_log, error_fatal);}net_init_clients();object_option_foreach_add(object_create_late);if (tpm_init() 0) {exit(1);}qemu_opts_foreach(qemu_find_opts(mon),mon_init_func, NULL, error_fatal);if (foreach_device_config(DEV_SERIAL, serial_parse) 0)exit(1);if (foreach_device_config(DEV_PARALLEL, parallel_parse) 0)exit(1);if (foreach_device_config(DEV_DEBUGCON, debugcon_parse) 0)exit(1);/* now chardevs have been created we may have semihosting to connect */qemu_semihosting_chardev_init(); }首先如果命令行参数中有 “-qtest” 则调用函数 qtest_server_init() 做配置。 qtest_server_init() 代码如下 void qtest_server_init(const char *qtest_chrdev, const char *qtest_log, Error **errp) {ERRP_GUARD();Chardev *chr;Object *qobj;chr qemu_chr_new(qtest, qtest_chrdev, NULL);if (chr NULL) {error_setg(errp, Failed to initialize device for qtest: \%s\,qtest_chrdev);return;}qobj object_new(TYPE_QTEST);object_property_set_str(qobj, chardev, chr-label, error_abort);if (qtest_log) {object_property_set_str(qobj, log, qtest_log, error_abort);}object_property_add_child(qdev_get_machine(), qtest, qobj);user_creatable_complete(USER_CREATABLE(qobj), errp);if (*errp) {object_unparent(qobj);}object_unref(OBJECT(chr));object_unref(qobj); }首先调用 chr qemu_chr_new(qtest, qtest_chrdev, NULL);新建字符设备函数 qemu_chr_new() 如下 static Chardev *qemu_chr_new_permit_mux_mon(const char *label,const char *filename,bool permit_mux_mon,GMainContext *context) {Chardev *chr;chr qemu_chr_new_noreplay(label, filename, permit_mux_mon, context);if (chr) {if (replay_mode ! REPLAY_MODE_NONE) {qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_REPLAY);}if (qemu_chr_replay(chr) CHARDEV_GET_CLASS(chr)-chr_ioctl) {error_report(Replay: ioctl is not supported for serial devices yet);}replay_register_char_driver(chr);}return chr; }Chardev *qemu_chr_new(const char *label, const char *filename,GMainContext *context) {return qemu_chr_new_permit_mux_mon(label, filename, false, context); }继续跟踪进入函数 qemu_chr_new_noreplay() 代码如下 Chardev *qemu_chr_new_noreplay(const char *label, const char *filename,bool permit_mux_mon, GMainContext *context) {const char *p;Chardev *chr;QemuOpts *opts;Error *err NULL;if (strstart(filename, chardev:, p)) {return qemu_chr_find(p);}opts qemu_chr_parse_compat(label, filename, permit_mux_mon);if (!opts)return NULL;chr qemu_chr_new_from_opts(opts, context, err);if (!chr) {error_report_err(err);goto out;}if (qemu_opt_get_bool(opts, mux, 0)) {assert(permit_mux_mon);monitor_init_hmp(chr, true, err);if (err) {error_report_err(err);object_unparent(OBJECT(chr));chr NULL;goto out;}}out:qemu_opts_del(opts);return chr; }在函数中将调用 qemu_chr_parse_compat() 来解析命令行参数函数 qemu_chr_parse_compat() 代码如下 QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename,bool permit_mux_mon) {char host[65], port[33], width[8], height[8];int pos;const char *p;QemuOpts *opts;Error *local_err NULL;opts qemu_opts_create(qemu_find_opts(chardev), label, 1, local_err);if (local_err) {error_report_err(local_err);return NULL;}if (strstart(filename, mon:, p)) {if (!permit_mux_mon) {error_report(mon: isnt supported in this context);return NULL;}filename p;qemu_opt_set(opts, mux, on, error_abort);if (strcmp(filename, stdio) 0) {/* Monitor is muxed to stdio: do not exit on CtrlC by default* but pass it to the guest. Handle this only for compat syntax,* for -chardev syntax we have special option for this.* This is what -nographic did, redirectingmuxing serialmonitor* to stdio causing CtrlC to be passed to guest. */qemu_opt_set(opts, signal, off, error_abort);}}if (strcmp(filename, null) 0 ||strcmp(filename, pty) 0 ||strcmp(filename, msmouse) 0 ||strcmp(filename, wctablet) 0 ||strcmp(filename, braille) 0 ||strcmp(filename, testdev) 0 ||strcmp(filename, stdio) 0) {qemu_opt_set(opts, backend, filename, error_abort);return opts;}if (strstart(filename, vc, p)) {qemu_opt_set(opts, backend, vc, error_abort);if (*p :) {if (sscanf(p1, %7[0-9]x%7[0-9], width, height) 2) {/* pixels */qemu_opt_set(opts, width, width, error_abort);qemu_opt_set(opts, height, height, error_abort);} else if (sscanf(p1, %7[0-9]Cx%7[0-9]C, width, height) 2) {/* chars */qemu_opt_set(opts, cols, width, error_abort);qemu_opt_set(opts, rows, height, error_abort);} else {goto fail;}}return opts;}if (strcmp(filename, con:) 0) {qemu_opt_set(opts, backend, console, error_abort);return opts;}if (strstart(filename, COM, NULL)) {qemu_opt_set(opts, backend, serial, error_abort);qemu_opt_set(opts, path, filename, error_abort);return opts;}if (strstart(filename, file:, p)) {qemu_opt_set(opts, backend, file, error_abort);qemu_opt_set(opts, path, p, error_abort);return opts;}if (strstart(filename, pipe:, p)) {qemu_opt_set(opts, backend, pipe, error_abort);qemu_opt_set(opts, path, p, error_abort);return opts;}if (strstart(filename, tcp:, p) ||strstart(filename, telnet:, p) ||strstart(filename, tn3270:, p) ||strstart(filename, websocket:, p)) {if (sscanf(p, %64[^:]:%32[^,]%n, host, port, pos) 2) {host[0] 0;if (sscanf(p, :%32[^,]%n, port, pos) 1)goto fail;}qemu_opt_set(opts, backend, socket, error_abort);qemu_opt_set(opts, host, host, error_abort);qemu_opt_set(opts, port, port, error_abort);if (p[pos] ,) {if (!qemu_opts_do_parse(opts, p pos 1, NULL, local_err)) {error_report_err(local_err);goto fail;}}if (strstart(filename, telnet:, p)) {qemu_opt_set(opts, telnet, on, error_abort);} else if (strstart(filename, tn3270:, p)) {qemu_opt_set(opts, tn3270, on, error_abort);} else if (strstart(filename, websocket:, p)) {qemu_opt_set(opts, websocket, on, error_abort);}return opts;}if (strstart(filename, udp:, p)) {qemu_opt_set(opts, backend, udp, error_abort);if (sscanf(p, %64[^:]:%32[^,]%n, host, port, pos) 2) {host[0] 0;if (sscanf(p, :%32[^,]%n, port, pos) 1) {goto fail;}}qemu_opt_set(opts, host, host, error_abort);qemu_opt_set(opts, port, port, error_abort);if (p[pos] ) {p pos 1;if (sscanf(p, %64[^:]:%32[^,]%n, host, port, pos) 2) {host[0] 0;if (sscanf(p, :%32[^,]%n, port, pos) 1) {goto fail;}}qemu_opt_set(opts, localaddr, host, error_abort);qemu_opt_set(opts, localport, port, error_abort);}return opts;}if (strstart(filename, unix:, p)) {qemu_opt_set(opts, backend, socket, error_abort);if (!qemu_opts_do_parse(opts, p, path, local_err)) {error_report_err(local_err);goto fail;}return opts;}if (strstart(filename, /dev/parport, NULL) ||strstart(filename, /dev/ppi, NULL)) {qemu_opt_set(opts, backend, parallel, error_abort);qemu_opt_set(opts, path, filename, error_abort);return opts;}if (strstart(filename, /dev/, NULL)) {qemu_opt_set(opts, backend, serial, error_abort);qemu_opt_set(opts, path, filename, error_abort);return opts;}error_report(%s is not a valid char driver, filename);fail:qemu_opts_del(opts);return NULL; }对于 qtest 的服务器端的实现我们通常选用 telnet 或 unix 的 socket 后端驱动来实现。 一个参考的命令行参数例子如下 -qtest unix:qtest-sock,server,nowait至此qtest_server_init() 的执行路径已经清晰了接下来继续主程序的运行进入函数 net_init_clients() 中。 net_init_clients() 代码如下 void net_init_clients(void) {net_change_state_entry qemu_add_vm_change_state_handler(net_vm_change_state_handler, NULL);QTAILQ_INIT(net_clients);netdev_init_modern();qemu_opts_foreach(qemu_find_opts(netdev), net_init_netdev, NULL,error_fatal);qemu_opts_foreach(qemu_find_opts(nic), net_param_nic, NULL,error_fatal);qemu_opts_foreach(qemu_find_opts(net), net_init_client, NULL,error_fatal); }netdev_init_modern() 代码如下 static void netdev_init_modern(void) {while (!QSIMPLEQ_EMPTY(nd_queue)) {NetdevQueueEntry *nd QSIMPLEQ_FIRST(nd_queue);QSIMPLEQ_REMOVE_HEAD(nd_queue, entry);loc_push_restore(nd-loc);net_client_init1(nd-nd, true, error_fatal);loc_pop(nd-loc);qapi_free_Netdev(nd-nd);g_free(nd);} }net_init_netdev() 代码如下 static int net_init_netdev(void *dummy, QemuOpts *opts, Error **errp) {const char *type qemu_opt_get(opts, type);if (type is_help_option(type)) {show_netdevs();exit(0);}return net_client_init(opts, true, errp); }net_param_nic() 代码如下 /* For the convenience --nic parameter */ static int net_param_nic(void *dummy, QemuOpts *opts, Error **errp) {char *mac, *nd_id;int idx, ret;NICInfo *ni;const char *type;type qemu_opt_get(opts, type);if (type) {if (g_str_equal(type, none)) {return 0; /* Nothing to do, default_net is cleared in vl.c */}if (is_help_option(type)) {GPtrArray *nic_models qemu_get_nic_models(TYPE_DEVICE);show_netdevs();printf(\n);qemu_show_nic_models(type, (const char **)nic_models-pdata);g_ptr_array_free(nic_models, true);exit(0);}}idx nic_get_free_idx();if (idx -1 || nb_nics MAX_NICS) {error_setg(errp, no more on-board/default NIC slots available);return -1;}if (!type) {qemu_opt_set(opts, type, user, error_abort);}ni nd_table[idx];memset(ni, 0, sizeof(*ni));ni-model qemu_opt_get_del(opts, model);/* Create an ID if the user did not specify one */nd_id g_strdup(qemu_opts_id(opts));if (!nd_id) {nd_id id_generate(ID_NET);qemu_opts_set_id(opts, nd_id);}/* Handle MAC address */mac qemu_opt_get_del(opts, mac);if (mac) {ret net_parse_macaddr(ni-macaddr.a, mac);g_free(mac);if (ret) {error_setg(errp, invalid syntax for ethernet address);goto out;}if (is_multicast_ether_addr(ni-macaddr.a)) {error_setg(errp, NIC cannot have multicast MAC address);ret -1;goto out;}}qemu_macaddr_default_if_unset(ni-macaddr);ret net_client_init(opts, true, errp);if (ret 0) {ni-netdev qemu_find_netdev(nd_id);ni-used true;nb_nics;}out:g_free(nd_id);return ret; }net_init_client() 代码如下 static int net_client_init(QemuOpts *opts, bool is_netdev, Error **errp) {gchar **substrings NULL;Netdev *object NULL;int ret -1;Visitor *v opts_visitor_new(opts);/* Parse convenience option format ipv6-netfec0::0[/64] */const char *ip6_net qemu_opt_get(opts, ipv6-net);if (ip6_net) {char *prefix_addr;unsigned long prefix_len 64; /* Default 64bit prefix length. */substrings g_strsplit(ip6_net, /, 2);if (!substrings || !substrings[0]) {error_setg(errp, QERR_INVALID_PARAMETER_VALUE, ipv6-net,a valid IPv6 prefix);goto out;}prefix_addr substrings[0];/* Handle user-specified prefix length. */if (substrings[1] qemu_strtoul(substrings[1], NULL, 10, prefix_len)){error_setg(errp,parameter ipv6-net expects a number after /);goto out;}qemu_opt_set(opts, ipv6-prefix, prefix_addr, error_abort);qemu_opt_set_number(opts, ipv6-prefixlen, prefix_len,error_abort);qemu_opt_unset(opts, ipv6-net);}/* Create an ID for -net if the user did not specify one */if (!is_netdev !qemu_opts_id(opts)) {qemu_opts_set_id(opts, id_generate(ID_NET));}if (visit_type_Netdev(v, NULL, object, errp)) {ret net_client_init1(object, is_netdev, errp);}qapi_free_Netdev(object);out:g_strfreev(substrings);visit_free(v);return ret; }static int net_init_client(void *dummy, QemuOpts *opts, Error **errp) {return net_client_init(opts, false, errp); }3.调试输出 首先添加跟踪调试信息修改后的代码如下 static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) { ...accel ACCEL(object_new_with_class(OBJECT_CLASS(ac)));HUEDBG(accel0x%llx\n, (unsigned long long int)accel);huedbg_dump_AccelClass(ac, 9); ... }static void configure_accelerators(const char *progname) { ...HUEDBG(accelerators[%s]\n, accelerators);accel_list g_strsplit(accelerators, :, 0); ... }int accel_init_machine(AccelState *accel, MachineState *ms) {AccelClass *acc ACCEL_GET_CLASS(accel);int ret;HUEDBG(accel0x%llx\n, (unsigned long long int)accel);ms-accelerator accel;*(acc-allowed) true;ret acc-init_machine(ms);if (ret 0) {HUEDBG(\n);ms-accelerator NULL;*(acc-allowed) false;object_unref(OBJECT(accel));} else {HUEDBG(\n);object_set_accelerator_compat_props(acc-compat_props);}huedbg_dump_AccelClass(acc, 9);return ret; }int qemu_init(int argc, char **argv) { .../** Note: uses machine properties such as kernel-irqchip, must run* after qemu_apply_machine_options.*/huedbg_flag 1;HUEDBG(\n);configure_accelerators(argv[0]);HUEDBG(\n);huedbg_flag 0;phase_advance(PHASE_ACCEL_CREATED); ... }运行后输出信息如下 [16676]../system/vl.c/qemu_init(3852): [16676]../system/qtest.c/qtest_server_init(873):enter [16676]../qom/object.c/object_class_by_name(1095):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-socket) in hash table [16676]../qom/object.c/object_class_by_name(1105):class(chardev-socket) return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_class_by_name(1095):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-socket) in hash table [16676]../qom/object.c/object_class_by_name(1105):class(chardev-socket) return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-socket) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(chardev-socket) [16676]../qom/object.c/object_new_with_type(799):obj(chardev-socket) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(chardev-socket) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(chardev-socket) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(chardev-socket).class with type(chardev-socket).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(chardev-socket) [16676]../qom/object.c/object_class_property_init_all(552):obj(chardev-socket) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{chardev-socket} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_class_get_parent(1138):objclass(chardev-socket) has parent(chardev) [16676]../qom/object.c/object_class_get_parent(1141):objclass(chardev-socket) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{chardev-socket} return [16676]../qom/object.c/object_class_property_init_all(555):prop name[addr] type[SocketAddress] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(555):prop name[connected] type[bool] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(chardev) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(chardev) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(chardev-socket) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(chardev-socket) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-socket] ti-name[chardev-socket] enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-socket] ti-name[chardev] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-socket] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-socket] ti-name[object] return [16676]../qom/object.c/object_init_with_type(423):name[chardev] ti-instance_init() before [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_init_with_type(425):name[chardev] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-socket] ti-name[chardev] return [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-socket] ti-name[chardev-socket] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(chardev-socket) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-socket] ti-name[chardev-socket] enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-socket] ti-name[chardev] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-socket] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(chardev-socket) return [16676]../qom/object.c/object_new_with_type(812):obj(chardev-socket) return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-socket) in hash table [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-net-listener) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(qio-net-listener) [16676]../qom/object.c/object_new_with_type(799):obj(qio-net-listener) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(qio-net-listener) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(qio-net-listener) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(qio-net-listener).class with type(qio-net-listener).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(qio-net-listener) [16676]../qom/object.c/object_class_property_init_all(552):obj(qio-net-listener) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{qio-net-listener} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qio-net-listener) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qio-net-listener) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{qio-net-listener} return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(qio-net-listener) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(qio-net-listener) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qio-net-listener] ti-name[qio-net-listener] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qio-net-listener] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qio-net-listener] ti-name[object] return [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qio-net-listener] ti-name[qio-net-listener] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(qio-net-listener) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qio-net-listener] ti-name[qio-net-listener] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qio-net-listener] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(qio-net-listener) return [16676]../qom/object.c/object_new_with_type(812):obj(qio-net-listener) return [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-net-listener) in hash table [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-dns-resolver) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(qio-dns-resolver) [16676]../qom/object.c/object_new_with_type(799):obj(qio-dns-resolver) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(qio-dns-resolver) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(qio-dns-resolver) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(qio-dns-resolver).class with type(qio-dns-resolver).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(qio-dns-resolver) [16676]../qom/object.c/object_class_property_init_all(552):obj(qio-dns-resolver) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{qio-dns-resolver} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qio-dns-resolver) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qio-dns-resolver) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{qio-dns-resolver} return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(qio-dns-resolver) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(qio-dns-resolver) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qio-dns-resolver] ti-name[qio-dns-resolver] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qio-dns-resolver] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qio-dns-resolver] ti-name[object] return [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qio-dns-resolver] ti-name[qio-dns-resolver] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(qio-dns-resolver) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qio-dns-resolver] ti-name[qio-dns-resolver] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qio-dns-resolver] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(qio-dns-resolver) return [16676]../qom/object.c/object_new_with_type(812):obj(qio-dns-resolver) return [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-dns-resolver) in hash table [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-channel-socket) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(qio-channel-socket) [16676]../qom/object.c/object_new_with_type(799):obj(qio-channel-socket) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(qio-channel-socket) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(qio-channel-socket) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(qio-channel-socket).class with type(qio-channel-socket).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(qio-channel-socket) [16676]../qom/object.c/object_class_property_init_all(552):obj(qio-channel-socket) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{qio-channel-socket} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(qio-channel) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qio-channel-socket) has parent(qio-channel) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qio-channel-socket) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{qio-channel-socket} return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qio-channel) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qio-channel) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(qio-channel-socket) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(qio-channel-socket) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qio-channel-socket] ti-name[qio-channel-socket] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qio-channel) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qio-channel-socket] ti-name[qio-channel] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qio-channel-socket] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qio-channel-socket] ti-name[object] return [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qio-channel-socket] ti-name[qio-channel] return [16676]../qom/object.c/object_init_with_type(423):name[qio-channel-socket] ti-instance_init() before [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-channel-socket) in hash table [16676]../qom/object.c/object_init_with_type(425):name[qio-channel-socket] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qio-channel-socket] ti-name[qio-channel-socket] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(qio-channel-socket) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qio-channel-socket] ti-name[qio-channel-socket] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qio-channel) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qio-channel-socket] ti-name[qio-channel] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qio-channel-socket] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(qio-channel-socket) return [16676]../qom/object.c/object_new_with_type(812):obj(qio-channel-socket) return [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-channel) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qio-channel) [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-channel) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qio-channel) [16676]../qom/object.c/type_table_lookup(103):lookup type(qio-channel) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qio-channel) [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_try_add(1309):name[qtest] enter! [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_try_add(1350):name[qtest] return-3! [16676]../qom/object.c/type_table_lookup(103):lookup type(qtest) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(qtest) [16676]../qom/object.c/object_new_with_type(799):obj(qtest) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(qtest) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(qtest) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(qtest).class with type(qtest).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(qtest) [16676]../qom/object.c/object_class_property_init_all(552):obj(qtest) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{qtest} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qtest) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qtest) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{qtest} return [16676]../qom/object.c/object_class_property_init_all(555):prop name[log] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(555):prop name[chardev] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(qtest) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(qtest) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qtest] ti-name[qtest] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qtest] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qtest] ti-name[object] return [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qtest] ti-name[qtest] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(qtest) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qtest] ti-name[qtest] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qtest] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(qtest) return [16676]../qom/object.c/object_new_with_type(812):obj(qtest) return [16676]../qom/qom-qobject.c/object_property_set_qobject(26):name[chardev] enter! [16676]../qom/object.c/object_property_set(1507):name[chardev] enter! [16676]../qom/object.c/object_property_set(1509):name[chardev] run! [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qtest) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qtest) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_set(1511):name[chardev] run! [16676]../qom/object.c/object_property_set(1524):name[chardev] run! [16676]../qom/object.c/type_table_lookup(103):lookup type(qtest) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_set(1526):name[chardev] return! [16676]../qom/qom-qobject.c/object_property_set_qobject(33):name[chardev] return! [16676]../qom/object.c/object_property_try_add(1309):name[qtest] enter! [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(generic-pc-machine) [16676]../qom/object.c/object_class_get_parent(1138):objclass(pc-q35-8.2-machine) has parent(generic-pc-machine) [16676]../qom/object.c/object_class_get_parent(1141):objclass(pc-q35-8.2-machine) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(x86-machine) [16676]../qom/object.c/object_class_get_parent(1138):objclass(generic-pc-machine) has parent(x86-machine) [16676]../qom/object.c/object_class_get_parent(1141):objclass(generic-pc-machine) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(machine) [16676]../qom/object.c/object_class_get_parent(1138):objclass(x86-machine) has parent(machine) [16676]../qom/object.c/object_class_get_parent(1141):objclass(x86-machine) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(machine) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(machine) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_try_add(1350):name[qtest] return-3! [16676]../qom/object.c/type_table_lookup(103):lookup type(user-creatable) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(interface) [16676]../qom/object.c/type_get_parent(194):parent_type(user-creatable) [16676]../qom/object.c/type_table_lookup(103):lookup type(user-creatable) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(interface) [16676]../qom/object.c/type_get_parent(194):parent_type(user-creatable) [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-mux) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-mux) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../system/qtest.c/qtest_server_init(894):exit [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-mux) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-mux) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_by_name(1095):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-vc) in hash table [16676]../qom/object.c/object_class_by_name(1105):class(chardev-vc) return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_class_by_name(1095):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-vc) in hash table [16676]../qom/object.c/object_class_by_name(1105):class(chardev-vc) return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-vc) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(chardev-vc) [16676]../qom/object.c/object_new_with_type(799):obj(chardev-vc) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(chardev-vc) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(chardev-vc) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(chardev-vc).class with type(chardev-vc).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(chardev-vc) [16676]../qom/object.c/object_class_property_init_all(552):obj(chardev-vc) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{chardev-vc} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_class_get_parent(1138):objclass(chardev-vc) has parent(chardev) [16676]../qom/object.c/object_class_get_parent(1141):objclass(chardev-vc) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{chardev-vc} return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(chardev) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(chardev) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(chardev-vc) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(chardev-vc) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-vc] ti-name[chardev-vc] enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-vc] ti-name[chardev] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-vc] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-vc] ti-name[object] return [16676]../qom/object.c/object_init_with_type(423):name[chardev] ti-instance_init() before [16676]../qom/object.c/object_init_with_type(425):name[chardev] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-vc] ti-name[chardev] return [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-vc] ti-name[chardev-vc] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(chardev-vc) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-vc] ti-name[chardev-vc] enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-vc] ti-name[chardev] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-vc] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(chardev-vc) return [16676]../qom/object.c/object_new_with_type(812):obj(chardev-vc) return [16676]../ui/console-vc.c/vc_chr_open(978):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-fixed-text-console) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(qemu-fixed-text-console) [16676]../qom/object.c/object_new_with_type(799):obj(qemu-fixed-text-console) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(qemu-fixed-text-console) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(qemu-fixed-text-console) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(qemu-fixed-text-console).class with type(qemu-fixed-text-console).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(qemu-fixed-text-console) [16676]../qom/object.c/object_class_property_init_all(552):obj(qemu-fixed-text-console) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{qemu-fixed-text-console} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qemu-fixed-text-console) has parent(qemu-text-console) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qemu-fixed-text-console) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{qemu-fixed-text-console} return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qemu-text-console) has parent(qemu-console) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qemu-text-console) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qemu-console) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qemu-console) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(qemu-fixed-text-console) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(qemu-fixed-text-console) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-fixed-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[object] return [16676]../qom/object.c/object_init_with_type(423):name[qemu-console] ti-instance_init() before [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-graphic-console) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-graphic-console) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-graphic-console) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_init_with_type(425):name[qemu-console] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-console] return [16676]../qom/object.c/object_init_with_type(423):name[qemu-text-console] ti-instance_init() before [16676]../qom/object.c/object_init_with_type(425):name[qemu-text-console] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-text-console] return [16676]../qom/object.c/object_init_with_type(423):name[qemu-fixed-text-console] ti-instance_init() before [16676]../qom/object.c/object_init_with_type(425):name[qemu-fixed-text-console] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-fixed-text-console] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(qemu-fixed-text-console) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-fixed-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(qemu-fixed-text-console) return [16676]../qom/object.c/object_new_with_type(812):obj(qemu-fixed-text-console) return [16676]../ui/console-vc.c/vc_chr_open(1026):enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_try_add(1309):name[serial0] enter! [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_try_add(1350):name[serial0] return-3! [16676]../qom/object.c/object_class_by_name(1095):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-vc) in hash table [16676]../qom/object.c/object_class_by_name(1105):class(chardev-vc) return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_class_by_name(1095):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-vc) in hash table [16676]../qom/object.c/object_class_by_name(1105):class(chardev-vc) return [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/type_table_lookup(103):lookup type(chardev-vc) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(chardev-vc) [16676]../qom/object.c/object_new_with_type(799):obj(chardev-vc) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(chardev-vc) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(chardev-vc) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(chardev-vc).class with type(chardev-vc).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(chardev-vc) [16676]../qom/object.c/object_class_property_init_all(552):obj(chardev-vc) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{chardev-vc} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_class_get_parent(1138):objclass(chardev-vc) has parent(chardev) [16676]../qom/object.c/object_class_get_parent(1141):objclass(chardev-vc) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{chardev-vc} return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(chardev) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(chardev) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(chardev-vc) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(chardev-vc) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-vc] ti-name[chardev-vc] enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-vc] ti-name[chardev] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[chardev-vc] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-vc] ti-name[object] return [16676]../qom/object.c/object_init_with_type(423):name[chardev] ti-instance_init() before [16676]../qom/object.c/object_init_with_type(425):name[chardev] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-vc] ti-name[chardev] return [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[chardev-vc] ti-name[chardev-vc] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(chardev-vc) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-vc] ti-name[chardev-vc] enter [16676]../qom/object.c/type_get_parent(194):parent_type(chardev) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-vc] ti-name[chardev] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[chardev-vc] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(chardev-vc) return [16676]../qom/object.c/object_new_with_type(812):obj(chardev-vc) return [16676]../ui/console-vc.c/vc_chr_open(978):enter [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-fixed-text-console) in hash table [16676]../qom/object.c/object_new_with_type(789):try type_initialize(qemu-fixed-text-console) [16676]../qom/object.c/object_new_with_type(799):obj(qemu-fixed-text-console) alloc [16676]../qom/object.c/object_new_with_type(808):try object_initialize_with_type(qemu-fixed-text-console) [16676]../qom/object.c/object_initialize_with_type(568):obj with type(qemu-fixed-text-console) enter [16676]../qom/object.c/object_initialize_with_type(576):mapping obj(qemu-fixed-text-console).class with type(qemu-fixed-text-console).class [16676]../qom/object.c/object_initialize_with_type(579):try object_class_property_init_all(qemu-fixed-text-console) [16676]../qom/object.c/object_class_property_init_all(552):obj(qemu-fixed-text-console) enter [16676]../qom/object.c/object_class_property_iter_init(1440):objclass{qemu-fixed-text-console} enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qemu-fixed-text-console) has parent(qemu-text-console) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qemu-fixed-text-console) return [16676]../qom/object.c/object_class_property_iter_init(1443):objclass{qemu-fixed-text-console} return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qemu-text-console) has parent(qemu-console) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qemu-text-console) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(qemu-console) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(qemu-console) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_class_property_init_all(555):prop name[type] type[string] desc[(null)] init[0000000000000000] [16676]../qom/object.c/object_class_property_init_all(563):obj(qemu-fixed-text-console) return [16676]../qom/object.c/object_initialize_with_type(583):try object_init_with_type(qemu-fixed-text-console) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-fixed-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_init_with_type(416):obj-class-type-name[qemu-fixed-text-console] ti-name[object] enter [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[object] return [16676]../qom/object.c/object_init_with_type(423):name[qemu-console] ti-instance_init() before [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-graphic-console) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-graphic-console) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/type_table_lookup(103):lookup type(qemu-graphic-console) in hash table [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_init_with_type(425):name[qemu-console] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-console] return [16676]../qom/object.c/object_init_with_type(423):name[qemu-text-console] ti-instance_init() before [16676]../qom/object.c/object_init_with_type(425):name[qemu-text-console] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-text-console] return [16676]../qom/object.c/object_init_with_type(423):name[qemu-fixed-text-console] ti-instance_init() before [16676]../qom/object.c/object_init_with_type(425):name[qemu-fixed-text-console] ti-instance_init() after [16676]../qom/object.c/object_init_with_type(427):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-fixed-text-console] return [16676]../qom/object.c/object_initialize_with_type(585):try object_post_init_with_type(qemu-fixed-text-console) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-fixed-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-text-console) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-text-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(qemu-console) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[qemu-console] enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_post_init_with_type(433):obj-class-type-name[qemu-fixed-text-console] ti-name[object] enter [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_post_init_with_type(444):return [16676]../qom/object.c/object_initialize_with_type(587):obj(qemu-fixed-text-console) return [16676]../qom/object.c/object_new_with_type(812):obj(qemu-fixed-text-console) return [16676]../ui/console-vc.c/vc_chr_open(1026):enter [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_try_add(1309):name[parallel0] enter! [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(194):parent_type(object) [16676]../qom/object.c/object_class_get_parent(1138):objclass(container) has parent(object) [16676]../qom/object.c/object_class_get_parent(1141):objclass(container) return [16676]../qom/object.c/object_class_get_parent(1130):enter [16676]../qom/object.c/type_get_parent(196):no parent_type [16676]../qom/object.c/object_class_get_parent(1134):objclass(object) has no parent return [16676]../qom/object.c/object_property_try_add(1350):name[parallel0] return-3! [16676]../system/vl.c/qemu_init(3854):总结 以上分析了系统初始化过程中创建后期后端驱动的过程。
http://www.hkea.cn/news/14508001/

相关文章:

  • 南浦电商网站建设全屋定制十大名牌品牌
  • 网站开发一般用的字体类型网络软文案例
  • 如何做打码网站wordpress怎么备份
  • 张掖网站建设公司免费wordpress外贸主题
  • 门户网站如何建设优秀建筑案例分析
  • 素材下载网站阿里云服务器免费
  • 优秀网站页面设计图片电影视频网站源码
  • 内部购物券网站怎么做怎么在自己电脑上做网站
  • 网站建设公司公司我我提供一个平台微擎怎么做网站
  • html网站开发实战教程免费网站建站系统
  • 集团网站推广用vs做购物网站下载
  • 为什么网站建设图片显示不出来如何制作电子印章
  • 设计签名免费网站公司网站优化推广方案
  • 响应式网站价格企业信用报告网上查询
  • 同城的网站建设巨野有做网站的公司吗
  • 商城网站都有哪 些功能html制作网页代码模板
  • 任何判断网站SEO做的好坏长沙专业网站制作
  • 做服装要看国外哪些网站好中山商城型网站建设
  • 邯郸网站建设推广北京网站关键字优化
  • iis asp网站怎么更改wordpress文件上传大小
  • 网站开发建设专业wordpress和shopify
  • 三只松鼠网站推广策略自助建站免费永久
  • 网站流量分析系统intitle:做网站
  • 广州市建设企业网站平台python18+21
  • 网站做seo推广 s软件园专业做网站
  • 在哪个网站可以做酒店预定单sae storage wordpress
  • 做外贸常用那几个网站广告公司的经营模式
  • s上海网站建设个人养老金制度有望年内
  • 淮南餐饮网站建设餐饮类网站设计
  • 农产品网站如何做地推什么是网站域名