liigo / tinyweb

Tinyweb, a tiny web server based on libuv, by liigo, 2013/06.
114 stars 45 forks source link

在ubuntu中使用codeblocks跨平台编译成功,windows中运行完美,wine环境中则报错。 #1

Open toaoman opened 9 years ago

toaoman commented 9 years ago

编译的是main3.c、membuf.c、tinyweb3.c,头文件是membuf.h、tinyweb3.h,libuv版本是1.x,从github上直接download zip下来的。 编译环境为gcc-mingw-w64中的i686-w64-mingw32-gcc-posix(版本是4.9.1),ubuntu 14.10,codeblocks 13.12。 测试环境为windows 7 sp1和 wine-1.6.2 001 windows中完美运行,而且支持中文目录,这一点比mongoose更好。 002 003 在wine环境中运行报错,很有可能还有某种bug存在,以下是保存为文本的报错信息。 Unhandled exception: page fault on write access to 0x00000000 in 32-bit code (0x664851f8). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:664851f8 ESP:0060f850 EBP:0060f888 EFLAGS:00010246( R- -- I Z- -P- ) EAX:00000000 EBX:0000273a ECX:0060f850 EDX:00000000 ESI:664abb4e EDI:00000000 Stack dump: 0x0060f850: 7ecd5340 664a8f82 664abb4e 0000273a 0x0060f860: 664a8f74 00000000 00000000 00000058 0x0060f870: 7e986e50 00000000 0060fcc8 00000000 0x0060f880: 00000058 7e986e50 0060fcc8 664a45cc 0x0060f890: 0000273a 664abb4e 00002005 0060fa4c 0x0060f8a0: 0060f8b8 0060fa08 0060f8d8 7bc7ba18 000c: sel=0067 base=00000000 limit=00000000 32-bit r-x Backtrace: =>0 0x664851f8 in libuv-1 (+0x51f8) (0x0060f888) 1 0x664a45cc in libuv-1 (+0x245cb) (0x0060fcc8) 2 0x664841d0 in libuv-1 (+0x41cf) (0x0060fce8) 3 0x6649b8aa in libuv-1 (+0x1b8a9) (0x0060fd28) 4 0x664843ce in libuv-1 (+0x43cd) (0x0060fd48) 5 0x66483c81 in libuv-1 (+0x3c80) (0x0060fd88) 6 0x004013e2 in tinyweb (+0x13e1) (0x0060fe50) 7 0x7b85a75c call_process_entry+0xb() in kernel32 (0x0060fe68) 8 0x7b85b75a ExitProcess+0xff9() in kernel32 (0x0060fe98) 9 0x7bc76830 call_thread_func_wrapper+0xb() in ntdll (0x0060feb8) 10 0x7bc7965f call_thread_func+0xce() in ntdll (0x0060ffa8) 11 0x7bc7680e RtlRaiseException+0x21() in ntdll (0x0060ffc8) 12 0x7bc4cd97 call_dll_entry_point+0x766() in ntdll (0x0060ffe8) 13 0xf75d215d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000) 14 0xf75d22d0 wine_switch_to_stack+0x1f() in libwine.so.1 (0xffad69b8) 15 0x7bc5221a LdrInitializeThunk+0x339() in ntdll (0xffad6a18) 16 0x7b861373 wine_kernel_init+0x872() in kernel32 (0xffad7b78) 17 0x7bc52793 wine_process_init+0x162() in ntdll (0xffad7be8) 18 0xf75cfdc7 wine_init+0x306() in libwine.so.1 (0xffad7c48) 19 0x7bf00d52 main+0x81() in (0xffad8098) 20 0xf73faa83 __libc_start_main+0xf2() in libc.so.6 (0x00000000) 0x664851f8: movb $0xff,0x00000000 Modules: Module Address Debug info Name (58 modules) PE 400000- 40a000 Export tinyweb PE 64940000-64954000 Deferred libwinpthread-1 PE 66480000-664b7000 Export libuv-1 PE 6d0c0000-6d0dd000 Deferred libgcc_s_sjlj-1 ELF 7b800000-7ba54000 Dwarf kernel32 -PE 7b810000-7ba54000 \ kernel32 ELF 7bc00000-7bcda000 Dwarf ntdll -PE 7bc10000-7bcda000 \ ntdll ELF 7bf00000-7bf04000 Dwarf ELF 7e4ad000-7e4b4000 Deferred libxfixes.so.3 ELF 7e4b4000-7e4bf000 Deferred libxcursor.so.1 ELF 7e4bf000-7e4d1000 Deferred libxi.so.6 ELF 7e4d1000-7e4d5000 Deferred libxcomposite.so.1 ELF 7e4d5000-7e4e0000 Deferred libxrandr.so.2 ELF 7e4e0000-7e4eb000 Deferred libxrender.so.1 ELF 7e4eb000-7e4f1000 Deferred libxxf86vm.so.1 ELF 7e4f1000-7e4f5000 Deferred libxinerama.so.1 ELF 7e4f5000-7e4fc000 Deferred libxdmcp.so.6 ELF 7e4fc000-7e500000 Deferred libxau.so.6 ELF 7e500000-7e522000 Deferred libxcb.so.1 ELF 7e522000-7e66d000 Deferred libx11.so.6 ELF 7e66d000-7e680000 Deferred libxext.so.6 ELF 7e69d000-7e72a000 Deferred winex11 -PE 7e6b0000-7e72a000 \ winex11 ELF 7e79f000-7e7c8000 Deferred libexpat.so.1 ELF 7e7c8000-7e804000 Deferred libfontconfig.so.1 ELF 7e804000-7e830000 Deferred libpng12.so.0 ELF 7e830000-7e84a000 Deferred libz.so.1 ELF 7e84a000-7e8fa000 Deferred libfreetype.so.6 ELF 7e8fa000-7e91d000 Deferred libtinfo.so.5 ELF 7e91d000-7e945000 Deferred libncurses.so.5 ELF 7e962000-7e997000 Deferred ws2_32 -PE 7e970000-7e997000 \ ws2_32 ELF 7e997000-7e9b0000 Deferred version -PE 7e9a0000-7e9b0000 \ version ELF 7e9b0000-7eac9000 Deferred gdi32 -PE 7e9c0000-7eac9000 \ gdi32 ELF 7eac9000-7ec16000 Deferred user32 -PE 7eae0000-7ec16000 \ user32 ELF 7ec16000-7ec2a000 Deferred psapi -PE 7ec20000-7ec2a000 \ psapi ELF 7ec2a000-7ecd7000 Deferred msvcrt -PE 7ec40000-7ecd7000 \ msvcrt ELF 7ecd7000-7ecfc000 Deferred iphlpapi -PE 7ece0000-7ecfc000 \ iphlpapi ELF 7ecfc000-7ed6b000 Deferred advapi32 -PE 7ed10000-7ed6b000 \ advapi32 ELF 7ef6b000-7ef78000 Deferred libnss_files.so.2 ELF 7ef78000-7ef84000 Deferred libnss_nis.so.2 ELF 7ef84000-7ef9d000 Deferred libnsl.so.1 ELF 7ef9d000-7efe3000 Deferred libm.so.6 ELF f73dc000-f73e1000 Deferred libdl.so.2 ELF f73e1000-f758e000 Dwarf libc.so.6 ELF f758f000-f75ac000 Deferred libpthread.so.0 ELF f75c0000-f75c9000 Deferred libnss_compat.so.2 ELF f75c9000-f777f000 Dwarf libwine.so.1 ELF f7781000-f77a3000 Deferred ld-linux.so.2 ELF f77a3000-f77a4000 Deferred [vdso].so Threads: process tid prio (all id:s are in hex) 00000008 (D) Z:\home\docker\dockershare\tinyweb\bin\Release\tinyweb.exe 00000009 0 <== 0000000e services.exe 0000001e 0 0000001d 0 00000018 0 00000016 0 00000014 0 00000010 0 0000000f 0 00000012 winedevice.exe 0000001c 0 00000019 0 00000017 0 00000013 0 0000001a plugplay.exe 00000020 0 0000001f 0 0000001b 0 00000021 explorer.exe 00000023 0 00000022 0 System information: Wine build: wine-1.6.2 Platform: i386 (WOW64) Host system: Linux Host version: 3.16.0-23-generic

liigo commented 9 years ago

哦,我还没在wine里测试过。从以上的错误信息里,我暂时判断不出哪里有问题。建议您编译成调试版再运行看看调用栈。

liigo commented 9 years ago

谢谢提交本项目的第一个Issue!