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

佛冈县住房和城乡建设局网站网络设计初步方案包括

佛冈县住房和城乡建设局网站,网络设计初步方案包括,阿里云手机网站建设多少钱,为什么百度没有收录我的网站目录 1.如何查看makefile构建过程执行的命令#xff1f; 2.如何使用GCC生成C程序的宏展开文件#xff1f; 3.如何在qemu中执行特定的可执行程序#xff1f; 4.如何在qemu中直接运行可执行程序#xff1f; 5.如何在qemu中调试某个可执行程序#xff1f; 本文从调试的角…目录 1.如何查看makefile构建过程执行的命令 2.如何使用GCC生成C程序的宏展开文件 3.如何在qemu中执行特定的可执行程序 4.如何在qemu中直接运行可执行程序 5.如何在qemu中调试某个可执行程序 本文从调试的角度出发分享QEMU调试过程中的常见调试方法。 1.如何查看makefile构建过程执行的命令 为了深入理解ucore操作系统实验的编译链接细节需要知道makefile在执行的过程中一步一步的指令执行情况。然而大部分的工程中makefile实际执行情况是没有输出日志的因此如何产生makefile指令执行的内容十分必要。 make命令的--just-print选项可以让makefile文件组织的工程只输出构建过程中要执行的命令而不实际执行这些命令。 当上述的命令执行完成后十分详细的输出的结果如下 touch -c kern/process/proc.c make --quiet --no-print-directory DEFS-DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size echo cc kern/init/entry.S gcc -Ikern/init/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/init/entry.S -o obj/kern/init/entry.o echo cc kern/init/init.c gcc -Ikern/init/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/init/init.c -o obj/kern/init/init.o echo cc kern/libs/stdio.c gcc -Ikern/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/libs/stdio.c -o obj/kern/libs/stdio.o echo cc kern/libs/readline.c gcc -Ikern/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/libs/readline.c -o obj/kern/libs/readline.o echo cc kern/debug/panic.c gcc -Ikern/debug/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/debug/panic.c -o obj/kern/debug/panic.o echo cc kern/debug/kdebug.c gcc -Ikern/debug/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/debug/kdebug.c -o obj/kern/debug/kdebug.o echo cc kern/debug/kmonitor.c gcc -Ikern/debug/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/debug/kmonitor.c -o obj/kern/debug/kmonitor.o echo cc kern/driver/ide.c gcc -Ikern/driver/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/driver/ide.c -o obj/kern/driver/ide.o echo cc kern/driver/clock.c gcc -Ikern/driver/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/driver/clock.c -o obj/kern/driver/clock.o echo cc kern/driver/console.c gcc -Ikern/driver/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/driver/console.c -o obj/kern/driver/console.o echo cc kern/driver/picirq.c gcc -Ikern/driver/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/driver/picirq.c -o obj/kern/driver/picirq.o echo cc kern/driver/intr.c gcc -Ikern/driver/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/driver/intr.c -o obj/kern/driver/intr.o echo cc kern/trap/trap.c gcc -Ikern/trap/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/trap/trap.c -o obj/kern/trap/trap.o echo cc kern/trap/vectors.S gcc -Ikern/trap/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/trap/vectors.S -o obj/kern/trap/vectors.o echo cc kern/trap/trapentry.S gcc -Ikern/trap/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/trap/trapentry.S -o obj/kern/trap/trapentry.o echo cc kern/mm/pmm.c gcc -Ikern/mm/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/mm/pmm.c -o obj/kern/mm/pmm.o echo cc kern/mm/swap_fifo.c gcc -Ikern/mm/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/mm/swap_fifo.c -o obj/kern/mm/swap_fifo.o echo cc kern/mm/vmm.c gcc -Ikern/mm/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/mm/vmm.c -o obj/kern/mm/vmm.o echo cc kern/mm/kmalloc.c gcc -Ikern/mm/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/mm/kmalloc.c -o obj/kern/mm/kmalloc.o echo cc kern/mm/swap.c gcc -Ikern/mm/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/mm/swap.c -o obj/kern/mm/swap.o echo cc kern/mm/default_pmm.c gcc -Ikern/mm/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/mm/default_pmm.c -o obj/kern/mm/default_pmm.o echo cc kern/fs/swapfs.c gcc -Ikern/fs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/fs/swapfs.c -o obj/kern/fs/swapfs.o echo cc kern/process/switch.S gcc -Ikern/process/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/process/switch.S -o obj/kern/process/switch.o echo cc kern/process/entry.S gcc -Ikern/process/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/process/entry.S -o obj/kern/process/entry.o echo cc kern/process/proc.c gcc -Ikern/process/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/process/proc.c -o obj/kern/process/proc.o echo cc kern/schedule/sched.c gcc -Ikern/schedule/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/schedule/sched.c -o obj/kern/schedule/sched.o echo cc kern/syscall/syscall.c gcc -Ikern/syscall/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ikern/mm/ -Ikern/libs/ -Ikern/sync/ -Ikern/fs/ -Ikern/process -Ikern/schedule -Ikern/syscall -c kern/syscall/syscall.c -o obj/kern/syscall/syscall.o echo cc libs/string.c gcc -Ilibs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -c libs/string.c -o obj/libs/string.o echo cc libs/printfmt.c gcc -Ilibs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -c libs/printfmt.c -o obj/libs/printfmt.o echo cc libs/hash.c gcc -Ilibs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -c libs/hash.c -o obj/libs/hash.o echo cc libs/rand.c gcc -Ilibs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -c libs/rand.c -o obj/libs/rand.o echo cc user/hello.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/hello.c -o obj/user/hello.o echo cc user/libs/panic.c gcc -Iuser/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/libs/panic.c -o obj/user/libs/panic.o echo cc user/libs/syscall.c gcc -Iuser/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/libs/syscall.c -o obj/user/libs/syscall.o echo cc user/libs/ulib.c gcc -Iuser/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/libs/ulib.c -o obj/user/libs/ulib.o echo cc user/libs/initcode.S gcc -Iuser/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/libs/initcode.S -o obj/user/libs/initcode.o echo cc user/libs/stdio.c gcc -Iuser/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/libs/stdio.c -o obj/user/libs/stdio.o echo cc user/libs/umain.c gcc -Iuser/libs/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/libs/umain.c -o obj/user/libs/umain.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_hello.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/hello.o objdump -S obj/__user_hello.out obj/user/hello.asm objdump -t obj/__user_hello.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/hello.sym echo cc user/badarg.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/badarg.c -o obj/user/badarg.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_badarg.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/badarg.o objdump -S obj/__user_badarg.out obj/user/badarg.asm objdump -t obj/__user_badarg.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/badarg.sym echo cc user/forktree.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/forktree.c -o obj/user/forktree.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_forktree.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/forktree.o objdump -S obj/__user_forktree.out obj/user/forktree.asm objdump -t obj/__user_forktree.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/forktree.sym echo cc user/badsegment.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/badsegment.c -o obj/user/badsegment.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_badsegment.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/badsegment.o objdump -S obj/__user_badsegment.out obj/user/badsegment.asm objdump -t obj/__user_badsegment.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/badsegment.sym echo cc user/faultread.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/faultread.c -o obj/user/faultread.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_faultread.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/faultread.o objdump -S obj/__user_faultread.out obj/user/faultread.asm objdump -t obj/__user_faultread.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/faultread.sym echo cc user/pgdir.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/pgdir.c -o obj/user/pgdir.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_pgdir.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/pgdir.o objdump -S obj/__user_pgdir.out obj/user/pgdir.asm objdump -t obj/__user_pgdir.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/pgdir.sym echo cc user/exit.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/exit.c -o obj/user/exit.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_exit.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/exit.o objdump -S obj/__user_exit.out obj/user/exit.asm objdump -t obj/__user_exit.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/exit.sym echo cc user/softint.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/softint.c -o obj/user/softint.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_softint.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/softint.o objdump -S obj/__user_softint.out obj/user/softint.asm objdump -t obj/__user_softint.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/softint.sym echo cc user/waitkill.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/waitkill.c -o obj/user/waitkill.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_waitkill.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/waitkill.o objdump -S obj/__user_waitkill.out obj/user/waitkill.asm objdump -t obj/__user_waitkill.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/waitkill.sym echo cc user/spin.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/spin.c -o obj/user/spin.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_spin.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/spin.o objdump -S obj/__user_spin.out obj/user/spin.asm objdump -t obj/__user_spin.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/spin.sym echo cc user/yield.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/yield.c -o obj/user/yield.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_yield.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/yield.o objdump -S obj/__user_yield.out obj/user/yield.asm objdump -t obj/__user_yield.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/yield.sym echo cc user/divzero.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/divzero.c -o obj/user/divzero.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_divzero.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/divzero.o objdump -S obj/__user_divzero.out obj/user/divzero.asm objdump -t obj/__user_divzero.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/divzero.sym echo cc user/testbss.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/testbss.c -o obj/user/testbss.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_testbss.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/testbss.o objdump -S obj/__user_testbss.out obj/user/testbss.asm objdump -t obj/__user_testbss.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/testbss.sym echo cc user/faultreadkernel.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/faultreadkernel.c -o obj/user/faultreadkernel.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_faultreadkernel.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/faultreadkernel.o objdump -S obj/__user_faultreadkernel.out obj/user/faultreadkernel.asm objdump -t obj/__user_faultreadkernel.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/faultreadkernel.sym echo cc user/forktest.c gcc -Iuser/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Iuser/include/ -Iuser/libs/ -c user/forktest.c -o obj/user/forktest.o ld -m elf_i386 -nostdlib -T tools/user.ld -o obj/__user_forktest.out obj/user/libs/panic.o obj/user/libs/syscall.o obj/user/libs/ulib.o obj/user/libs/initcode.o obj/user/libs/stdio.o obj/user/libs/umain.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o obj/user/forktest.o objdump -S obj/__user_forktest.out obj/user/forktest.asm objdump -t obj/__user_forktest.out | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/user/forktest.sym mkdir -p bin/ echo ld bin/kernel ld -m elf_i386 -nostdlib -T tools/kernel.ld -o bin/kernel obj/kern/init/entry.o obj/kern/init/init.o obj/kern/libs/stdio.o obj/kern/libs/readline.o obj/kern/debug/panic.o obj/kern/debug/kdebug.o obj/kern/debug/kmonitor.o obj/kern/driver/ide.o obj/kern/driver/clock.o obj/kern/driver/console.o obj/kern/driver/picirq.o obj/kern/driver/intr.o obj/kern/trap/trap.o obj/kern/trap/vectors.o obj/kern/trap/trapentry.o obj/kern/mm/pmm.o obj/kern/mm/swap_fifo.o obj/kern/mm/vmm.o obj/kern/mm/kmalloc.o obj/kern/mm/swap.o obj/kern/mm/default_pmm.o obj/kern/fs/swapfs.o obj/kern/process/switch.o obj/kern/process/entry.o obj/kern/process/proc.o obj/kern/schedule/sched.o obj/kern/syscall/syscall.o obj/libs/string.o obj/libs/printfmt.o obj/libs/hash.o obj/libs/rand.o -b binary obj/__user_hello.out obj/__user_badarg.out obj/__user_forktree.out obj/__user_badsegment.out obj/__user_faultread.out obj/__user_pgdir.out obj/__user_exit.out obj/__user_softint.out obj/__user_waitkill.out obj/__user_spin.out obj/__user_yield.out obj/__user_divzero.out obj/__user_testbss.out obj/__user_faultreadkernel.out obj/__user_forktest.out objdump -S bin/kernel obj/kernel.asm objdump -t bin/kernel | sed 1,/SYMBOL TABLE/d; s/ .* / /; /^$/d obj/kernel.sym echo cc boot/bootasm.S gcc -Iboot/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Os -nostdinc -c boot/bootasm.S -o obj/boot/bootasm.o echo cc boot/bootmain.c gcc -Iboot/ -marchi686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size -fno-stack-protector -Ilibs/ -Os -nostdinc -c boot/bootmain.c -o obj/boot/bootmain.o echo cc tools/sign.c gcc -Itools/ -g -Wall -O2 -c tools/sign.c -o obj/sign/tools/sign.o gcc -g -Wall -O2 obj/sign/tools/sign.o -o bin/sign echo ld bin/bootblock ld -m elf_i386 -nostdlib -N -T tools/boot.ld obj/boot/bootasm.o obj/boot/bootmain.o -o obj/bootblock.o objdump -S obj/bootblock.o obj/bootblock.asm objcopy -S -O binary obj/bootblock.o obj/bootblock.out bin/sign obj/bootblock.out bin/bootblock dd if/dev/zero ofbin/ucore.img count10000 dd ifbin/bootblock ofbin/ucore.img convnotrunc dd ifbin/kernel ofbin/ucore.img seek1 convnotrunc dd if/dev/zero ofbin/swap.img bs1024k count128 2.如何使用GCC生成C程序的宏展开文件 在ucore调试的过程中会遇到多层嵌套的宏定义此时理解起来十分的困难那么知道宏展开的结果十分重要例如以下test.c的宏展开。 //test.c文件 // kernel_execve - do SYS_exec syscall to exec a user program called by user_main kernel_thread static int kernel_execve(const char *name, unsigned char *binary, size_t size) {int ret, len strlen(name);asm volatile (int %1;: a (ret): i (T_SYSCALL), 0 (SYS_exec), d (name), c (len), b (binary), D (size): memory);return ret; }#define __KERNEL_EXECVE(name, binary, size) ({ \cprintf(kernel_execve: pid %d, name \%s\.\n, \current-pid, name); \kernel_execve(name, binary, (size_t)(size)); \})#define KERNEL_EXECVE(x) ({ \extern unsigned char _binary_obj___user_##x##_out_start[], \_binary_obj___user_##x##_out_size[]; \__KERNEL_EXECVE(#x, _binary_obj___user_##x##_out_start, \_binary_obj___user_##x##_out_size); \})#define __KERNEL_EXECVE2(x, xstart, xsize) ({ \extern unsigned char xstart[], xsize[]; \__KERNEL_EXECVE(#x, xstart, (size_t)xsize); \})#define KERNEL_EXECVE2(x, xstart, xsize) __KERNEL_EXECVE2(x, xstart, xsize)// user_main - kernel thread used to exec a user program static int user_main(void *arg) { #ifdef TESTKERNEL_EXECVE2(TEST, TESTSTART, TESTSIZE); #elseKERNEL_EXECVE(exit); #endifpanic(user_main execve failed.\n); } 在上面的代码中使用的宏定义如下 TESThello TESTSTART_binary_obj___user_hello_out_start TESTSIZE_binary_obj___user_hello_out_size 此时需要gcc的命令输出C代码的预处理结果这个命令如下 gcc -E -DTESThello -DTESTSTART_binary_obj___user_hello_out_start -DTESTSIZE_binary_obj___user_hello_out_size test.c -o test.i 最终宏展开的详细输出的结果如下 # 1 test.c # 1 built-in # 1 command-line # 1 /usr/include/stdc-predef.h 1 3 4 # 1 command-line 2 # 1 test.cstatic int kernel_execve(const char *name, unsigned char *binary, size_t size) {int ret, len strlen(name);asm volatile (int %1;: a (ret): i (T_SYSCALL), 0 (SYS_exec), d (name), c (len), b (binary), D (size): memory);return ret; } # 35 test.c static int user_main(void *arg) {({ extern unsigned char _binary_obj___user_hello_out_start[], _binary_obj___user_hello_out_size[]; ({ cprintf(kernel_execve: pid %d, name \%s\.\n, current-pid, hello); kernel_execve(hello, _binary_obj___user_hello_out_start, (size_t)((size_t)_binary_obj___user_hello_out_size)); }); });panic(user_main execve failed.\n); } 在上面的代码中变量_binary_obj___user_hello_out_start是外部变量只有声明说明变量的性质但并不分配存储单元没有定义表示创建变量或分配存储单元那在哪里定义的呢 这是由于gcc指令中-D的宏-Dmacro[defn]因此可以理解_binary_obj___user_hello_out_start在gcc命令表示成定义而不是声明。于是上述的代码是可以生成可执行文件的。 -D macrostring等价于在头文件中定义#define   macro   string。 为了验证相当于#define macro string下面的Qt代码能打印输出。 #include stdio.h#include stdint.h#define TEST hello #define TESTSTART _binary_obj___user_hello_out_start #define TESTSIZE _binary_obj___user_hello_out_size#define __KERNEL_EXECVE(name, binary, size) ({ \printf(kernel_execve: pid %d, name \%s\.\n, \1, name); \})#define KERNEL_EXECVE(x) ({ \extern unsigned char _binary_obj___user_##x##_out_start[], \_binary_obj___user_##x##_out_size[]; \__KERNEL_EXECVE(#x, _binary_obj___user_##x##_out_start, \_binary_obj___user_##x##_out_size); \})#define __KERNEL_EXECVE2(TEST, TESTSTART, TESTSIZE) ({ \extern unsigned char xstart[], xsize[]; \__KERNEL_EXECVE(hello, _binary_obj___user_hello_out_start, (size_t)_binary_obj___user_hello_out_size); \})#define KERNEL_EXECVE2(TEST, TESTSTART, TESTSIZE) __KERNEL_EXECVE2(TEST, TESTSTART, TESTSIZE)// user_main - kernel thread used to exec a user program static int user_main(void *arg) { #ifdef TESTKERNEL_EXECVE2(TEST, TESTSTART, TESTSIZE); #elseKERNEL_EXECVE(exit); #endifprintf(user_main execve failed.\n); }int main() {user_main(NULL);return 0; }3.如何在qemu中执行特定的可执行程序 在Lab8中用户态编译了多个进程如hello、badarg如何在文件系统中执行某个单独的应用程序是一个关键的问题。 首先执行make clean这一步将清空Lab8工程所有的编译输出结果。 然后执行make 这一步将生成ucore镜像以及应用程序。 然后执行make qemu这一步将启动qemu虚拟机。 然后在qemu输入输出界面按下回车键进入shell界面 最后在shell的终端界面中执行sfs_filetest1 4.如何在qemu中直接运行可执行程序 在第3步中在qemu虚拟机中执行应用程序这种方式效率低。而在qemu中编译、链接、执行某个应用程序的方式效率高且更加有益于单步调试。 首先执行make run-%命令执行某个程序。 最后在终端中查看运行结果。 5.如何在qemu中调试某个可执行程序 首先执行make build-%编译输出可执行程序。 然后执行make debug单步调试目标。 最后设置断点单步调试内核。
http://www.hkea.cn/news/14265185/

相关文章:

  • 海口智能建站模板yellow片高清影视在线观看
  • 怎么做网站宣传psd设计网站模板
  • 用网站做淘客怎么做企业画册设计模板
  • 上海网站建设服务宁德国家工商核名查询入口
  • 无锡网站设计多少钱北京专业推广公司
  • 建设网站需求分析整合营销传播的效果表现为
  • 银行网站开发重庆公共资源交易中心
  • 新沂建设工程交易中心seo网站规划
  • 焦作网站建设哪家正规把网站生成app的免费平台
  • espcms易思企业网站管理系统破解淄博网站制作培训
  • 集团网站建设特点互联网课堂微信群拉人的营销方法
  • 找it工作有什么好的招聘网站电子工程网络工程维修记录次数
  • 网站制作的服务商wordpress后台发布文章发不
  • 免费网站建设开发ui网站设计模板
  • 长沙找人做网站原创代写文章平台
  • 网站改版方案流程wordpress文章无法置顶
  • 郑州网站建设找哪家好seo百度关键词优化软件
  • 内蒙古乌海建设局网站建站制作企业
  • 电子网站有哪些网站可以做设计挣钱
  • 中国建设银行网站保定五四路国外设计有名网站
  • 红花岗区建设局网站服务器网站打不开
  • 如何把代码wordpress网站优化哪里好
  • 北京网站制作南昌互联网ui设计是什么
  • 湖南营销型网站建设 要上磐石网络装潢设计属于什么专业类别
  • 免费网站后台管理系统模板wordpress 简单企业主题
  • 微信官方网站怎么进入app优化方案
  • 上海网站备案审核时间郑州做网站易云巢
  • 大型电子商务网站 服务器硬件 cpu 内存 硬盘 2014欧亚专线到国内多久
  • 重庆展示型网站制作河南发现5名阳性
  • 开发区建设业联合会网站口碑好的网站建设