Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program: /usr/local/bin/warzone2100(warzone2100)
- Command line: "warzone2100"
- Version: Version SDL-3.1_beta4 - Built Feb 28 2012
- Distributor: UNKNOWN
- Compiled on: Feb 28 2012 19:10:56
- Compiled by: GCC 4.5.2
- Compiled mode: Release build
- Executed on: Sat Mar 10 22:01:15 2012
- Operating system: Linux
- Node name: R26695g
- Release: 2.6.38-13-generic
- Version: #56-Ubuntu SMP Tue Feb 14 12:39:59 UTC 2012
- Machine: x86_64
- Pointers: 64bit
- Compiled against PhysicsFS version: 2.0.1
- Running with PhysicsFS version: 2.0.1
- Misc Data:
- [22:01:15]Video Mode 1500 x 800 (window)
- [22:01:15]OpenGL Vendor: ATI Technologies Inc.
- [22:01:15]OpenGL Renderer: AMD Radeon HD 6900 Series
- [22:01:15]OpenGL Version: 4.1.10665 Compatibility Profile Context
- [22:01:15]GLEW Version: 1.5.2
- [22:01:15]OpenGL GLSL Version : 4.10
- [22:01:15]OpenAL Device Name: PulseAudio Software
- [22:01:15]OpenAL Vendor: OpenAL Community
- [22:01:15]OpenAL Version: 1.1 ALSOFT 1.12.854
- [22:01:15]OpenAL Renderer: OpenAL Soft
- [22:01:15]OpenAL Extensions: AL_EXTX_buffer_sub_data AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXTX_sample_buffer_object AL_EXT_source_distance_model AL_LOKI_quadriphonic
- [22:01:15]Using Backend: SDL
- [22:01:15]Using language: System locale
- [22:09:10]Current Level/map is Sk-ColosseumWZ-T1
- [22:12:45]Current Level/map is Sk-ColosseumWZ-T1
- [22:15:17]Current Level/map is Sk-ColosseumWZ-T1
- Dump caused by signal: SIGSEGV: Invalid memory reference: Address not mapped to object
- Log message: info |10:01:21: [loadMapPreview] Could not find level dataset!
- Log message: info |10:01:21: [loadMapPreview] Assert in Warzone: multiint.cpp:420 (psLevel != NULL), last script event: '<none>'
- Log message: error |10:09:12: [recvMultiPlayerRandomArtifacts] Already something at (50,24)!
- Log message: info |10:09:25: [recvMessage] ** player 4 has dropped!
- Log message: info |10:09:41: [NETrecvNet] Player, (player 0) seems to have dropped/disconnected.
- Log message: info |10:10:23: [NETplayerKicked] Player 6 was kicked.
- Log message: last message repeated 2 times
- Log message: last message repeated 1 times (total 3 repeats)
- Log message: info |10:12:56: [recvMessage] ** player 7 has dropped!
- Log message: info |10:13:21: [recvMessage] ** player 6 has dropped!
- Log message: info |10:13:25: [NETrecvNet] Player, (player 0) seems to have dropped/disconnected.
- Log message: info |10:14:05: [NETplayerKicked] Player 6 was kicked.
- GLIBC raw backtrace:
- warzone2100[0x749857]
- /lib/x86_64-linux-gnu/libpthread.so.0(+0xfc60)[0x7f40a8854c60]
- warzone2100(_Z14buildBlueprintPK15STRUCTURE_STATS8Vector2itj13STRUCT_STATES+0xc5)[0x692c26]
- warzone2100(_ZNK9Blueprint14buildBlueprintEv+0x3f)[0x51c4d7]
- warzone2100(_Z25getTileBlueprintStructureii+0x5f)[0x51134a]
- warzone2100[0x523f8c]
- warzone2100(_Z22processMouseClickInputv+0xb36)[0x520a12]
- warzone2100[0x5b0550]
- warzone2100(_Z8gameLoopv+0x29a)[0x5b1124]
- warzone2100[0x5b31be]
- warzone2100(_Z8mainLoopv+0x75)[0x5b3491]
- warzone2100(_Z7wzMain3v+0x78)[0x767417]
- warzone2100(_Z8realmainiPPc+0x8fb)[0x5b3db0]
- warzone2100(main+0x20)[0x7653ec]
- /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xff)[0x7f40a672ceff]
- warzone2100[0x4d4209]
- GDB extended backtrace:
- GNU gdb (Ubuntu/Linaro 7.2-1ubuntu11) 7.2
- Copyright (C) 2010 Free Software Foundation, Inc.
- License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
- This is free software: you are free to change and redistribute it.
- There is NO WARRANTY, to the extent permitted by law. Type "show copying"
- and "show warranty" for details.
- This GDB was configured as "x86_64-linux-gnu".
- For bug reporting instructions, please see:
- <http://www.gnu.org/software/gdb/bugs/>...
- Reading symbols from /usr/local/bin/warzone2100...done.
- Attaching to program: /usr/local/bin/warzone2100, process 5220
- Reading symbols from /lib/x86_64-linux-gnu/libz.so.1...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libz.so.1
- Reading symbols from /usr/lib/libSDL-1.2.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libSDL-1.2.so.0
- Reading symbols from /usr/lib/libphysfs.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libphysfs.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libpng12.so.0...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libpng12.so.0
- Reading symbols from /usr/lib/libvorbisfile.so.3...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libvorbisfile.so.3
- Reading symbols from /usr/lib/libvorbis.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libvorbis.so.0
- Reading symbols from /usr/lib/libogg.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libogg.so.0
- Reading symbols from /lib/x86_64-linux-gnu/libm.so.6...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libm.so.6
- Reading symbols from /usr/lib/libtheora.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libtheora.so.0
- Reading symbols from /usr/lib/libopenal.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libopenal.so.1
- Reading symbols from /usr/lib/libfribidi.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libfribidi.so.0
- Reading symbols from /usr/lib/x86_64-linux-gnu/libfreetype.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libfreetype.so.6
- Reading symbols from /usr/lib/x86_64-linux-gnu/libfontconfig.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0...(no debugging symbols found)...done.
- [Thread debugging using libthread_db enabled]
- [New Thread 0x7f409264f700 (LWP 5871)]
- [New Thread 0x7f4093360700 (LWP 5834)]
- [New Thread 0x7f4093ffe700 (LWP 5232)]
- [New Thread 0x7f409ce01700 (LWP 5231)]
- [New Thread 0x7f409de04700 (LWP 5230)]
- [New Thread 0x7f409e605700 (LWP 5229)]
- [New Thread 0x7f40a1816700 (LWP 5228)]
- [New Thread 0x7f40a2427700 (LWP 5227)]
- Loaded symbols for /lib/x86_64-linux-gnu/libpthread.so.0
- Reading symbols from /usr/lib/fglrx/libGL.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/fglrx/libGL.so.1
- Reading symbols from /usr/lib/libGLU.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libGLU.so.1
- Reading symbols from /usr/lib/libGLEW.so.1.5...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libGLEW.so.1.5
- Reading symbols from /usr/lib/libQtNetwork.so.4...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libQtNetwork.so.4
- Reading symbols from /usr/lib/libQtScript.so.4...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libQtScript.so.4
- Reading symbols from /usr/lib/libQtCore.so.4...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libQtCore.so.4
- Reading symbols from /usr/lib/x86_64-linux-gnu/libX11.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libX11.so.6
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXrandr.so.2...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXrandr.so.2
- Reading symbols from /usr/lib/x86_64-linux-gnu/libstdc++.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libstdc++.so.6
- Reading symbols from /lib/x86_64-linux-gnu/libgcc_s.so.1...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libgcc_s.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libc.so.6
- Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libdl.so.2
- Reading symbols from /usr/lib/libpulse-simple.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libpulse-simple.so.0
- Reading symbols from /usr/lib/libpulse.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libpulse.so.0
- Reading symbols from /lib/x86_64-linux-gnu/librt.so.1...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/librt.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libexpat.so.1...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libexpat.so.1
- Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
- Loaded symbols for /lib64/ld-linux-x86-64.so.2
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXext.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXext.so.6
- Reading symbols from /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0
- Reading symbols from /lib/x86_64-linux-gnu/libglib-2.0.so.0...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libglib-2.0.so.0
- Reading symbols from /usr/lib/x86_64-linux-gnu/libxcb.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libxcb.so.1
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXrender.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXrender.so.1
- Reading symbols from /usr/lib/libpulsecommon-0.9.22.so...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libpulsecommon-0.9.22.so
- Reading symbols from /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1
- Reading symbols from /usr/lib/x86_64-linux-gnu/libICE.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libICE.so.6
- Reading symbols from /usr/lib/x86_64-linux-gnu/libSM.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libSM.so.6
- Reading symbols from /usr/lib/libXtst.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libXtst.so.6
- Reading symbols from /usr/lib/libxcb-atom.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libxcb-atom.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libdbus-1.so.3...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libdbus-1.so.3
- Reading symbols from /lib/x86_64-linux-gnu/libpcre.so.3...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libpcre.so.3
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXau.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXau.so.6
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXdmcp.so.6...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
- Reading symbols from /lib/libwrap.so.0...(no debugging symbols found)...done.
- Loaded symbols for /lib/libwrap.so.0
- Reading symbols from /usr/lib/libsndfile.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libsndfile.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libuuid.so.1...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libuuid.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libnsl.so.1...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libnsl.so.1
- Reading symbols from /usr/lib/libFLAC.so.8...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libFLAC.so.8
- Reading symbols from /usr/lib/libvorbisenc.so.2...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/libvorbisenc.so.2
- Reading symbols from /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXcursor.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXcursor.so.1
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXfixes.so.3...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXfixes.so.3
- Reading symbols from /usr/lib/fglrx/dri/fglrx_dri.so...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/fglrx/dri/fglrx_dri.so
- Reading symbols from /usr/lib/fglrx/libatiuki.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/fglrx/libatiuki.so.1
- Reading symbols from /usr/lib/fglrx/libatiadlxx.so...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/fglrx/libatiadlxx.so
- Reading symbols from /usr/lib/x86_64-linux-gnu/libXinerama.so.1...(no debugging symbols found)...done.
- Loaded symbols for /usr/lib/x86_64-linux-gnu/libXinerama.so.1
- Reading symbols from /lib/x86_64-linux-gnu/libnss_files.so.2...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libnss_files.so.2
- Reading symbols from /lib/libnss_mdns4_minimal.so.2...(no debugging symbols found)...done.
- Loaded symbols for /lib/libnss_mdns4_minimal.so.2
- Reading symbols from /lib/x86_64-linux-gnu/libnss_dns.so.2...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libnss_dns.so.2
- Reading symbols from /lib/x86_64-linux-gnu/libresolv.so.2...(no debugging symbols found)...done.
- Loaded symbols for /lib/x86_64-linux-gnu/libresolv.so.2
- 0x00007f40a885481d in waitpid () from /lib/x86_64-linux-gnu/libpthread.so.0
- (gdb) 0x692c26 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+197>: mov (%rax),%rax
- (gdb) #4 0x0000000000692c26 in buildBlueprint (psStats=0x7f409b25d0c8, xy=..., direction=34203, moduleIndex=0, state=SS_BLUEPRINT_PLANNED) at structure.cpp:1770
- 1770 ASSERT_OR_RETURN(NULL, psStats->pIMD[0] != NULL, "No blueprint model for %s", getStatName(psStats));
- (gdb) Dump of assembler code for function buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES):
- 1766 {
- 0x0000000000692b61 <+0>: push %rbp
- 0x0000000000692b62 <+1>: mov %rsp,%rbp
- 0x0000000000692b65 <+4>: push %r12
- 0x0000000000692b67 <+6>: push %rbx
- 0x0000000000692b68 <+7>: sub $0xb0,%rsp
- 0x0000000000692b6f <+14>: mov %rdi,-0x98(%rbp)
- 0x0000000000692b76 <+21>: mov %rsi,-0xa0(%rbp)
- 0x0000000000692b7d <+28>: mov %edx,%eax
- 0x0000000000692b7f <+30>: mov %ecx,-0xa8(%rbp)
- 0x0000000000692b85 <+36>: mov %r8d,-0xac(%rbp)
- 0x0000000000692b8c <+43>: mov %ax,-0xa4(%rbp)
- 1767 STRUCTURE *blueprint;
- 1768
- 1769 ASSERT_OR_RETURN(NULL, psStats != NULL, "No blueprint stats");
- 0x0000000000692b93 <+50>: cmpq $0x0,-0x98(%rbp)
- 0x0000000000692b9b <+58>: setne %al
- 0x0000000000692b9e <+61>: mov %al,-0x11(%rbp)
- 0x0000000000692ba1 <+64>: movzbl -0x11(%rbp),%eax
- 0x0000000000692ba5 <+68>: xor $0x1,%eax
- 0x0000000000692ba8 <+71>: test %al,%al
- 0x0000000000692baa <+73>: je 0x692c0e <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+173>
- 0x0000000000692bac <+75>: mov $0x7ae896,%edx
- 0x0000000000692bb1 <+80>: mov $0x7b0c01,%esi
- 0x0000000000692bb6 <+85>: mov $0x19,%edi
- 0x0000000000692bbb <+90>: mov $0x0,%eax
- 0x0000000000692bc0 <+95>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692bc5 <+100>: mov $0x1581000,%r9d
- 0x0000000000692bcb <+106>: mov $0x7ae8a9,%r8d
- 0x0000000000692bd1 <+112>: mov $0x7ae8b9,%ecx
- 0x0000000000692bd6 <+117>: mov $0x7ade90,%edx
- 0x0000000000692bdb <+122>: mov $0x7b0c01,%esi
- 0x0000000000692be0 <+127>: mov $0x19,%edi
- 0x0000000000692be5 <+132>: mov $0x0,%eax
- 0x0000000000692bea <+137>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692bef <+142>: movzbl 0xeee4aa(%rip),%eax # 0x15810a0 <assertEnabled>
- 0x0000000000692bf6 <+149>: test %al,%al
- 0x0000000000692bf8 <+151>: je 0x692c04 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+163>
- 0x0000000000692bfa <+153>: mov $0x5,%edi
- 0x0000000000692bff <+158>: callq 0x4d2980 <raise@plt>
- 0x0000000000692c04 <+163>: mov $0x0,%eax
- 0x0000000000692c09 <+168>: jmpq 0x69313a <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1497>
- 1770 ASSERT_OR_RETURN(NULL, psStats->pIMD[0] != NULL, "No blueprint model for %s", getStatName(psStats));
- 0x0000000000692c0e <+173>: mov -0x98(%rbp),%rax
- 0x0000000000692c15 <+180>: add $0x38,%rax
- 0x0000000000692c19 <+184>: mov $0x0,%esi
- 0x0000000000692c1e <+189>: mov %rax,%rdi
- 0x0000000000692c21 <+192>: callq 0x6a2dbe <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::operator[](std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size_type) const>
- => 0x0000000000692c26 <+197>: mov (%rax),%rax
- 0x0000000000692c29 <+200>: test %rax,%rax
- 0x0000000000692c2c <+203>: setne %al
- 0x0000000000692c2f <+206>: mov %al,-0x12(%rbp)
- 0x0000000000692c32 <+209>: movzbl -0x12(%rbp),%eax
- 0x0000000000692c36 <+213>: xor $0x1,%eax
- 0x0000000000692c39 <+216>: test %al,%al
- 0x0000000000692c3b <+218>: je 0x692cb1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+336>
- 0x0000000000692c3d <+220>: mov -0x98(%rbp),%rax
- 0x0000000000692c44 <+227>: mov %rax,%rdi
- 0x0000000000692c47 <+230>: callq 0x682f82 <getStatName(void const*)>
- 0x0000000000692c4c <+235>: mov %rax,%rcx
- 0x0000000000692c4f <+238>: mov $0x7ae8cc,%edx
- 0x0000000000692c54 <+243>: mov $0x7b0c01,%esi
- 0x0000000000692c59 <+248>: mov $0x19,%edi
- 0x0000000000692c5e <+253>: mov $0x0,%eax
- 0x0000000000692c63 <+258>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692c68 <+263>: mov $0x1581000,%r9d
- 0x0000000000692c6e <+269>: mov $0x7ae8e6,%r8d
- 0x0000000000692c74 <+275>: mov $0x7ae8ff,%ecx
- 0x0000000000692c79 <+280>: mov $0x7ade90,%edx
- 0x0000000000692c7e <+285>: mov $0x7b0c01,%esi
- 0x0000000000692c83 <+290>: mov $0x19,%edi
- 0x0000000000692c88 <+295>: mov $0x0,%eax
- 0x0000000000692c8d <+300>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692c92 <+305>: movzbl 0xeee407(%rip),%eax # 0x15810a0 <assertEnabled>
- 0x0000000000692c99 <+312>: test %al,%al
- 0x0000000000692c9b <+314>: je 0x692ca7 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+326>
- 0x0000000000692c9d <+316>: mov $0x5,%edi
- 0x0000000000692ca2 <+321>: callq 0x4d2980 <raise@plt>
- 0x0000000000692ca7 <+326>: mov $0x0,%eax
- 0x0000000000692cac <+331>: jmpq 0x69313a <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1497>
- 1771
- 1772 Vector3i pos(xy, INT32_MIN);
- 0x0000000000692cb1 <+336>: lea -0xa0(%rbp),%rcx
- 0x0000000000692cb8 <+343>: lea -0x80(%rbp),%rax
- 0x0000000000692cbc <+347>: mov $0x80000000,%edx
- 0x0000000000692cc1 <+352>: mov %rcx,%rsi
- 0x0000000000692cc4 <+355>: mov %rax,%rdi
- 0x0000000000692cc7 <+358>: callq 0x4f71e8 <Vector3i::Vector3i(Vector2i const&, int)>
- 1773 Rotation rot((direction + 0x2000)&0xC000, 0, 0); // Round direction to nearest 90°.
- 0x0000000000692ccc <+363>: movzwl -0xa4(%rbp),%eax
- 0x0000000000692cd3 <+370>: add $0x2000,%eax
- 0x0000000000692cd8 <+375>: mov %eax,%esi
- 0x0000000000692cda <+377>: and $0xc000,%esi
- 0x0000000000692ce0 <+383>: lea -0x40(%rbp),%rax
- 0x0000000000692ce4 <+387>: mov $0x0,%ecx
- 0x0000000000692ce9 <+392>: mov $0x0,%edx
- 0x0000000000692cee <+397>: mov %rax,%rdi
- 0x0000000000692cf1 <+400>: callq 0x4ec3ce <Rotation::Rotation(int, int, int)>
- 1774
- 1775 StructureBounds b = getStructureBounds(psStats, xy, direction);
- 0x0000000000692cf6 <+405>: movzwl -0xa4(%rbp),%edx
- 0x0000000000692cfd <+412>: mov -0xa0(%rbp),%rcx
- 0x0000000000692d04 <+419>: mov -0x98(%rbp),%rax
- 0x0000000000692d0b <+426>: mov %rcx,%rsi
- 0x0000000000692d0e <+429>: mov %rax,%rdi
- 0x0000000000692d11 <+432>: callq 0x6a1968 <getStructureBounds(STRUCTURE_STATS const*, Vector2i, uint16_t)>
- 0x0000000000692d16 <+437>: mov %rax,%rcx
- 0x0000000000692d19 <+440>: mov %rdx,%rax
- 0x0000000000692d1c <+443>: mov %rcx,-0xc0(%rbp)
- 0x0000000000692d23 <+450>: mov %rax,-0xb8(%rbp)
- 0x0000000000692d2a <+457>: mov -0xc0(%rbp),%rax
- 0x0000000000692d31 <+464>: mov %rax,-0x90(%rbp)
- 0x0000000000692d38 <+471>: mov -0xb8(%rbp),%rax
- 0x0000000000692d3f <+478>: mov %rax,-0x88(%rbp)
- 1776 for (int j = 0; j <= b.size.y; ++j)
- 0x0000000000692d46 <+485>: movl $0x0,-0x18(%rbp)
- 0x0000000000692d4d <+492>: jmp 0x692dac <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+587>
- 0x0000000000692da8 <+583>: addl $0x1,-0x18(%rbp)
- 0x0000000000692dac <+587>: mov -0x84(%rbp),%eax
- 0x0000000000692db2 <+593>: cmp -0x18(%rbp),%eax
- 0x0000000000692db5 <+596>: setge %al
- 0x0000000000692db8 <+599>: test %al,%al
- 0x0000000000692dba <+601>: jne 0x692d4f <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+494>
- 1777 for (int i = 0; i <= b.size.x; ++i)
- 0x0000000000692d4f <+494>: movl $0x0,-0x1c(%rbp)
- 0x0000000000692d56 <+501>: jmp 0x692d98 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+567>
- 0x0000000000692d94 <+563>: addl $0x1,-0x1c(%rbp)
- 0x0000000000692d98 <+567>: mov -0x88(%rbp),%eax
- 0x0000000000692d9e <+573>: cmp -0x1c(%rbp),%eax
- 0x0000000000692da1 <+576>: setge %al
- 0x0000000000692da4 <+579>: test %al,%al
- 0x0000000000692da6 <+581>: jne 0x692d58 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+503>
- 1778 {
- 1779 pos.z = std::max(pos.z, map_TileHeight(b.map.x + i, b.map.y + j));
- 0x0000000000692d58 <+503>: mov -0x8c(%rbp),%eax
- 0x0000000000692d5e <+509>: mov %eax,%edx
- 0x0000000000692d60 <+511>: add -0x18(%rbp),%edx
- 0x0000000000692d63 <+514>: mov -0x90(%rbp),%eax
- 0x0000000000692d69 <+520>: add -0x1c(%rbp),%eax
- 0x0000000000692d6c <+523>: mov %edx,%esi
- 0x0000000000692d6e <+525>: mov %eax,%edi
- 0x0000000000692d70 <+527>: callq 0x68d603 <map_TileHeight(int32_t, int32_t)>
- 0x0000000000692d75 <+532>: mov %eax,-0x28(%rbp)
- 0x0000000000692d78 <+535>: lea -0x28(%rbp),%rax
- 0x0000000000692d7c <+539>: lea -0x80(%rbp),%rdx
- 0x0000000000692d80 <+543>: add $0x8,%rdx
- 0x0000000000692d84 <+547>: mov %rax,%rsi
- 0x0000000000692d87 <+550>: mov %rdx,%rdi
- 0x0000000000692d8a <+553>: callq 0x4dd1ae <std::max<int>(int const&, int const&)>
- 0x0000000000692d8f <+558>: mov (%rax),%eax
- 0x0000000000692d91 <+560>: mov %eax,-0x78(%rbp)
- 1780 }
- 1781
- 1782 int moduleNumber = 0;
- 0x0000000000692dbc <+603>: movl $0x0,-0x2c(%rbp)
- 1783 std::vector<iIMDShape *> const *pIMD = &psStats->pIMD;
- 0x0000000000692dc3 <+610>: mov -0x98(%rbp),%rax
- 0x0000000000692dca <+617>: add $0x38,%rax
- 0x0000000000692dce <+621>: mov %rax,-0x48(%rbp)
- 1784 if (IsStatExpansionModule(psStats))
- 0x0000000000692dd2 <+625>: mov -0x98(%rbp),%rax
- 0x0000000000692dd9 <+632>: mov %rax,%rdi
- 0x0000000000692ddc <+635>: callq 0x68ddc9 <IsStatExpansionModule(STRUCTURE_STATS const*)>
- 0x0000000000692de1 <+640>: test %al,%al
- 0x0000000000692de3 <+642>: je 0x692ea1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+832>
- 1785 {
- 1786 STRUCTURE *baseStruct = castStructure(worldTile(xy)->psObject);
- 0x0000000000692de9 <+648>: lea -0xa0(%rbp),%rax
- 0x0000000000692df0 <+655>: mov %rax,%rdi
- 0x0000000000692df3 <+658>: callq 0x68d5d9 <worldTile(Vector2i const&)>
- 0x0000000000692df8 <+663>: mov 0x20(%rax),%rax
- 0x0000000000692dfc <+667>: mov %rax,%rdi
- 0x0000000000692dff <+670>: callq 0x68d13f <castStructure(SIMPLE_OBJECT*)>
- 0x0000000000692e04 <+675>: mov %rax,-0x50(%rbp)
- 1787 if (baseStruct != NULL)
- 0x0000000000692e08 <+679>: cmpq $0x0,-0x50(%rbp)
- 0x0000000000692e0d <+684>: je 0x692ea1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+832>
- 1788 {
- 1789 if (moduleIndex == 0)
- 0x0000000000692e13 <+690>: cmpl $0x0,-0xa8(%rbp)
- 0x0000000000692e1a <+697>: jne 0x692e33 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+722>
- 1790 {
- 1791 moduleIndex = nextModuleToBuild(baseStruct, 0);
- 0x0000000000692e1c <+699>: mov -0x50(%rbp),%rax
- 0x0000000000692e20 <+703>: mov $0x0,%esi
- 0x0000000000692e25 <+708>: mov %rax,%rdi
- 0x0000000000692e28 <+711>: callq 0x52ed8a <nextModuleToBuild(STRUCTURE const*, int)>
- 0x0000000000692e2d <+716>: mov %eax,-0xa8(%rbp)
- 1792 }
- 1793 int baseModuleNumber = moduleIndex*2 - 1; // *2-1 because even-numbered IMDs are structures, odd-numbered IMDs are just the modules.
- 0x0000000000692e33 <+722>: mov -0xa8(%rbp),%eax
- 0x0000000000692e39 <+728>: add %eax,%eax
- 0x0000000000692e3b <+730>: sub $0x1,%eax
- 0x0000000000692e3e <+733>: mov %eax,-0x20(%rbp)
- 1794 std::vector<iIMDShape *> const *basepIMD = &baseStruct->pStructureType->pIMD;
- 0x0000000000692e41 <+736>: mov -0x50(%rbp),%rax
- 0x0000000000692e45 <+740>: mov 0xa8(%rax),%rax
- 0x0000000000692e4c <+747>: add $0x38,%rax
- 0x0000000000692e50 <+751>: mov %rax,-0x58(%rbp)
- 1795 if ((unsigned)baseModuleNumber < basepIMD->size())
- 0x0000000000692e54 <+755>: mov -0x20(%rbp),%eax
- 0x0000000000692e57 <+758>: mov %eax,%ebx
- 0x0000000000692e59 <+760>: mov -0x58(%rbp),%rax
- 0x0000000000692e5d <+764>: mov %rax,%rdi
- 0x0000000000692e60 <+767>: callq 0x572638 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size() const>
- 0x0000000000692e65 <+772>: cmp %rax,%rbx
- 0x0000000000692e68 <+775>: setb %al
- 0x0000000000692e6b <+778>: test %al,%al
- 0x0000000000692e6d <+780>: je 0x692ea1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+832>
- 1796 {
- 1797 // Draw the module.
- 1798 moduleNumber = baseModuleNumber;
- 0x0000000000692e6f <+782>: mov -0x20(%rbp),%eax
- 0x0000000000692e72 <+785>: mov %eax,-0x2c(%rbp)
- 1799 pIMD = basepIMD;
- 0x0000000000692e75 <+788>: mov -0x58(%rbp),%rax
- 0x0000000000692e79 <+792>: mov %rax,-0x48(%rbp)
- 1800 pos = baseStruct->pos;
- 0x0000000000692e7d <+796>: mov -0x50(%rbp),%rax
- 0x0000000000692e81 <+800>: mov 0x10(%rax),%rdx
- 0x0000000000692e85 <+804>: mov %rdx,-0x80(%rbp)
- 0x0000000000692e89 <+808>: mov 0x18(%rax),%eax
- 0x0000000000692e8c <+811>: mov %eax,-0x78(%rbp)
- 1801 rot = baseStruct->rot;
- 0x0000000000692e8f <+814>: mov -0x50(%rbp),%rax
- 0x0000000000692e93 <+818>: mov 0x1c(%rax),%edx
- 0x0000000000692e96 <+821>: mov %edx,-0x40(%rbp)
- 0x0000000000692e99 <+824>: movzwl 0x20(%rax),%eax
- 0x0000000000692e9d <+828>: mov %ax,-0x3c(%rbp)
- 1802 }
- 1803 }
- 1804 }
- 1805
- 1806 blueprint = new STRUCTURE(0, selectedPlayer);
- 0x0000000000692ea1 <+832>: mov $0x198,%edi
- 0x0000000000692ea6 <+837>: callq 0x4d2910 <_Znwm@plt>
- 0x0000000000692eab <+842>: mov %rax,%rbx
- 0x0000000000692eae <+845>: mov 0xeee834(%rip),%edx # 0x15816e8 <selectedPlayer>
- 0x0000000000692eb4 <+851>: mov %rbx,%rax
- 0x0000000000692eb7 <+854>: mov $0x0,%esi
- 0x0000000000692ebc <+859>: mov %rax,%rdi
- 0x0000000000692ebf <+862>: callq 0x6984e8 <STRUCTURE::STRUCTURE(uint32_t, unsigned int)>
- 0x0000000000692ec4 <+867>: mov %rbx,-0x60(%rbp)
- 0x0000000000693149 <+1512>: mov %rbx,%rdi
- 0x000000000069314c <+1515>: callq 0x4d2790 <_ZdlPv@plt>
- 0x0000000000693151 <+1520>: mov %r12,%rax
- 0x0000000000693154 <+1523>: mov %rax,%rdi
- 0x0000000000693157 <+1526>: callq 0x4d3c50 <_Unwind_Resume@plt>
- 1807 // construct the fake structure
- 1808 blueprint->pStructureType = const_cast<STRUCTURE_STATS *>(psStats); // Couldn't be bothered to fix const correctness everywhere.
- 0x0000000000692ec8 <+871>: mov -0x60(%rbp),%rax
- 0x0000000000692ecc <+875>: mov -0x98(%rbp),%rdx
- 0x0000000000692ed3 <+882>: mov %rdx,0xa8(%rax)
- 1809 blueprint->visible[selectedPlayer] = UBYTE_MAX;
- 0x0000000000692eda <+889>: mov 0xeee808(%rip),%eax # 0x15816e8 <selectedPlayer>
- 0x0000000000692ee0 <+895>: mov -0x60(%rbp),%rdx
- 0x0000000000692ee4 <+899>: mov %eax,%eax
- 0x0000000000692ee6 <+901>: movb $0xff,0x4b(%rdx,%rax,1)
- 1810 blueprint->sDisplay.imd = (*pIMD)[std::min<int>(moduleNumber, pIMD->size() - 1)];
- 0x0000000000692eeb <+906>: mov -0x48(%rbp),%rax
- 0x0000000000692eef <+910>: mov %rax,%rdi
- 0x0000000000692ef2 <+913>: callq 0x572638 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size() const>
- 0x0000000000692ef7 <+918>: sub $0x1,%eax
- 0x0000000000692efa <+921>: mov %eax,-0x30(%rbp)
- 0x0000000000692efd <+924>: lea -0x30(%rbp),%rdx
- 0x0000000000692f01 <+928>: lea -0x2c(%rbp),%rax
- 0x0000000000692f05 <+932>: mov %rdx,%rsi
- 0x0000000000692f08 <+935>: mov %rax,%rdi
- 0x0000000000692f0b <+938>: callq 0x4e08c3 <std::min<int>(int const&, int const&)>
- 0x0000000000692f10 <+943>: mov (%rax),%eax
- 0x0000000000692f12 <+945>: movslq %eax,%rdx
- 0x0000000000692f15 <+948>: mov -0x48(%rbp),%rax
- 0x0000000000692f19 <+952>: mov %rdx,%rsi
- 0x0000000000692f1c <+955>: mov %rax,%rdi
- 0x0000000000692f1f <+958>: callq 0x6a2dbe <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::operator[](std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size_type) const>
- 0x0000000000692f24 <+963>: mov (%rax),%rdx
- 0x0000000000692f27 <+966>: mov -0x60(%rbp),%rax
- 0x0000000000692f2b <+970>: mov %rdx,0x30(%rax)
- 1811 blueprint->pos = pos;
- 0x0000000000692f2f <+974>: mov -0x60(%rbp),%rax
- 0x0000000000692f33 <+978>: mov -0x80(%rbp),%rdx
- 0x0000000000692f37 <+982>: mov %rdx,0x10(%rax)
- 0x0000000000692f3b <+986>: mov -0x78(%rbp),%edx
- 0x0000000000692f3e <+989>: mov %edx,0x18(%rax)
- 1812 blueprint->rot = rot;
- 0x0000000000692f41 <+992>: mov -0x60(%rbp),%rax
- 0x0000000000692f45 <+996>: mov -0x40(%rbp),%edx
- 0x0000000000692f48 <+999>: mov %edx,0x1c(%rax)
- 0x0000000000692f4b <+1002>: movzwl -0x3c(%rbp),%edx
- 0x0000000000692f4f <+1006>: mov %dx,0x20(%rax)
- 1813 blueprint->selected = false;
- 0x0000000000692f53 <+1010>: mov -0x60(%rbp),%rax
- 0x0000000000692f57 <+1014>: movb $0x0,0x49(%rax)
- 1814
- 1815 blueprint->numWeaps = 0;
- 0x0000000000692f5b <+1018>: mov -0x60(%rbp),%rax
- 0x0000000000692f5f <+1022>: movw $0x0,0xd0(%rax)
- 1816 blueprint->asWeaps[0].nStat = 0;
- 0x0000000000692f68 <+1031>: mov -0x60(%rbp),%rax
- 0x0000000000692f6c <+1035>: movl $0x0,0xd4(%rax)
- 1817
- 1818 // give defensive structures a weapon
- 1819 if (psStats->psWeapStat[0])
- 0x0000000000692f76 <+1045>: mov -0x98(%rbp),%rax
- 0x0000000000692f7d <+1052>: mov 0x70(%rax),%rax
- 0x0000000000692f81 <+1056>: test %rax,%rax
- 0x0000000000692f84 <+1059>: je 0x692fc5 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1124>
- 1820 {
- 1821 blueprint->asWeaps[0].nStat = psStats->psWeapStat[0] - asWeaponStats;
- 0x0000000000692f86 <+1061>: mov -0x98(%rbp),%rax
- 0x0000000000692f8d <+1068>: mov 0x70(%rax),%rax
- 0x0000000000692f91 <+1072>: mov %rax,%rdx
- 0x0000000000692f94 <+1075>: mov 0xaf1455(%rip),%rax # 0x11843f0 <asWeaponStats>
- 0x0000000000692f9b <+1082>: mov %rdx,%rcx
- 0x0000000000692f9e <+1085>: sub %rax,%rcx
- 0x0000000000692fa1 <+1088>: mov %rcx,%rax
- 0x0000000000692fa4 <+1091>: mov %rax,%rdx
- 0x0000000000692fa7 <+1094>: sar $0x3,%rdx
- 0x0000000000692fab <+1098>: movabs $0x34f72c234f72c235,%rax
- 0x0000000000692fb5 <+1108>: imul %rdx,%rax
- 0x0000000000692fb9 <+1112>: mov %eax,%edx
- 0x0000000000692fbb <+1114>: mov -0x60(%rbp),%rax
- 0x0000000000692fbf <+1118>: mov %edx,0xd4(%rax)
- 1822 }
- 1823 // things with sensors or ecm (or repair facilities) need these set, even if they have no official weapon
- 1824 blueprint->numWeaps = 0;
- 0x0000000000692fc5 <+1124>: mov -0x60(%rbp),%rax
- 0x0000000000692fc9 <+1128>: movw $0x0,0xd0(%rax)
- 1825 blueprint->asWeaps[0].lastFired = 0;
- 0x0000000000692fd2 <+1137>: mov -0x60(%rbp),%rax
- 0x0000000000692fd6 <+1141>: movl $0x0,0xdc(%rax)
- 1826 blueprint->asWeaps[0].rot.pitch = 0;
- 0x0000000000692fe0 <+1151>: mov -0x60(%rbp),%rax
- 0x0000000000692fe4 <+1155>: movw $0x0,0xe6(%rax)
- 1827 blueprint->asWeaps[0].rot.direction = 0;
- 0x0000000000692fed <+1164>: mov -0x60(%rbp),%rax
- 0x0000000000692ff1 <+1168>: movw $0x0,0xe4(%rax)
- 1828 blueprint->asWeaps[0].rot.roll = 0;
- 0x0000000000692ffa <+1177>: mov -0x60(%rbp),%rax
- 0x0000000000692ffe <+1181>: movw $0x0,0xe8(%rax)
- 1829 blueprint->asWeaps[0].prevRot = blueprint->asWeaps[0].rot;
- 0x0000000000693007 <+1190>: mov -0x60(%rbp),%rax
- 0x000000000069300b <+1194>: mov -0x60(%rbp),%rdx
- 0x000000000069300f <+1198>: mov 0xe4(%rdx),%ecx
- 0x0000000000693015 <+1204>: mov %ecx,0xea(%rax)
- 0x000000000069301b <+1210>: movzwl 0xe8(%rdx),%edx
- 0x0000000000693022 <+1217>: mov %dx,0xee(%rax)
- 1830
- 1831 blueprint->expectedDamage = 0;
- 0x0000000000693029 <+1224>: mov -0x60(%rbp),%rax
- 0x000000000069302d <+1228>: movl $0x0,0x170(%rax)
- 1832
- 1833 // Times must be different, but don't otherwise matter.
- 1834 blueprint->time = 23;
- 0x0000000000693037 <+1238>: mov -0x60(%rbp),%rax
- 0x000000000069303b <+1242>: movl $0x17,0x2c(%rax)
- 1835 blueprint->prevTime = 42;
- 0x0000000000693042 <+1249>: mov -0x60(%rbp),%rax
- 0x0000000000693046 <+1253>: movl $0x2a,0x174(%rax)
- 1836
- 1837 blueprint->status = state;
- 0x0000000000693050 <+1263>: mov -0x60(%rbp),%rax
- 0x0000000000693054 <+1267>: mov -0xac(%rbp),%edx
- 0x000000000069305a <+1273>: mov %edx,0xb0(%rax)
- 1838
- 1839 // Rotate wall if needed.
- 1840 if (blueprint->pStructureType->type == REF_WALL || blueprint->pStructureType->type == REF_GATE)
- 0x0000000000693060 <+1279>: mov -0x60(%rbp),%rax
- 0x0000000000693064 <+1283>: mov 0xa8(%rax),%rax
- 0x000000000069306b <+1290>: mov 0x10(%rax),%eax
- 0x000000000069306e <+1293>: cmp $0x7,%eax
- 0x0000000000693071 <+1296>: je 0x69308a <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1321>
- 0x0000000000693073 <+1298>: mov -0x60(%rbp),%rax
- 0x0000000000693077 <+1302>: mov 0xa8(%rax),%rax
- 0x000000000069307e <+1309>: mov 0x10(%rax),%eax
- 0x0000000000693081 <+1312>: cmp $0x16,%eax
- 0x0000000000693084 <+1315>: jne 0x693136 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1493>
- 1841 {
- 1842 WallOrientation scanType = structChooseWallTypeBlueprint(map_coord(removeZ(blueprint->pos)));
- 0x000000000069308a <+1321>: mov -0x60(%rbp),%rax
- 0x000000000069308e <+1325>: add $0x10,%rax
- 0x0000000000693092 <+1329>: mov %rax,%rdi
- 0x0000000000693095 <+1332>: callq 0x68cb60 <removeZ(Vector3i const&)>
- 0x000000000069309a <+1337>: mov %rax,-0x70(%rbp)
- 0x000000000069309e <+1341>: lea -0x70(%rbp),%rax
- 0x00000000006930a2 <+1345>: mov %rax,%rdi
- 0x00000000006930a5 <+1348>: callq 0x68d2f1 <map_coord(Vector2i const&)>
- 0x00000000006930aa <+1353>: mov %rax,%rdi
- 0x00000000006930ad <+1356>: callq 0x690c10 <structChooseWallTypeBlueprint(Vector2i)>
- 0x00000000006930b2 <+1361>: mov %eax,-0x24(%rbp)
- 1843 unsigned type = wallType(scanType);
- 0x00000000006930b5 <+1364>: mov -0x24(%rbp),%eax
- 0x00000000006930b8 <+1367>: mov %eax,%edi
- 0x00000000006930ba <+1369>: callq 0x690656 <wallType(WallOrientation)>
- 0x00000000006930bf <+1374>: movzwl %ax,%eax
- 0x00000000006930c2 <+1377>: mov %eax,-0x34(%rbp)
- 1844 if (scanType != WallConnectNone)
- 0x00000000006930c5 <+1380>: cmpl $0x0,-0x24(%rbp)
- 0x00000000006930c9 <+1384>: je 0x693136 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1493>
- 1845 {
- 1846 blueprint->rot.direction = wallDir(scanType);
- 0x00000000006930cb <+1386>: mov -0x24(%rbp),%eax
- 0x00000000006930ce <+1389>: mov %eax,%edi
- 0x00000000006930d0 <+1391>: callq 0x6905cb <wallDir(WallOrientation)>
- 0x00000000006930d5 <+1396>: mov -0x60(%rbp),%rdx
- 0x00000000006930d9 <+1400>: mov %ax,0x1c(%rdx)
- 1847 blueprint->sDisplay.imd = blueprint->pStructureType->pIMD[std::min<unsigned>(type, blueprint->pStructureType->pIMD.size() - 1)];
- 0x00000000006930dd <+1404>: mov -0x60(%rbp),%rax
- 0x00000000006930e1 <+1408>: mov 0xa8(%rax),%rax
- 0x00000000006930e8 <+1415>: add $0x38,%rax
- 0x00000000006930ec <+1419>: mov %rax,%rdi
- 0x00000000006930ef <+1422>: callq 0x572638 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size() const>
- 0x00000000006930f4 <+1427>: sub $0x1,%eax
- 0x00000000006930f7 <+1430>: mov %eax,-0x38(%rbp)
- 0x00000000006930fa <+1433>: lea -0x38(%rbp),%rdx
- 0x00000000006930fe <+1437>: lea -0x34(%rbp),%rax
- 0x0000000000693102 <+1441>: mov %rdx,%rsi
- 0x0000000000693105 <+1444>: mov %rax,%rdi
- 0x0000000000693108 <+1447>: callq 0x4e372b <std::min<unsigned int>(unsigned int const&, unsigned int const&)>
- 0x000000000069310d <+1452>: mov (%rax),%eax
- 0x000000000069310f <+1454>: mov %eax,%eax
- 0x0000000000693111 <+1456>: mov -0x60(%rbp),%rdx
- 0x0000000000693115 <+1460>: mov 0xa8(%rdx),%rdx
- 0x000000000069311c <+1467>: add $0x38,%rdx
- 0x0000000000693120 <+1471>: mov %rax,%rsi
- 0x0000000000693123 <+1474>: mov %rdx,%rdi
- 0x0000000000693126 <+1477>: callq 0x4fa8d0 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::operator[](std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size_type)>
- 0x000000000069312b <+1482>: mov (%rax),%rdx
- 0x000000000069312e <+1485>: mov -0x60(%rbp),%rax
- 0x0000000000693132 <+1489>: mov %rdx,0x30(%rax)
- 1848 }
- 1849 }
- 1850
- 1851 return blueprint;
- 0x0000000000693136 <+1493>: mov -0x60(%rbp),%rax
- 1852 }
- 0x000000000069313a <+1497>: add $0xb0,%rsp
- 0x0000000000693141 <+1504>: pop %rbx
- 0x0000000000693142 <+1505>: pop %r12
- 0x0000000000693144 <+1507>: leaveq
- 0x0000000000693145 <+1508>: retq
- 0x0000000000693146 <+1509>: mov %rax,%r12
- End of assembler dump.
- (gdb) #0 0x00007f40a885481d in waitpid () from /lib/x86_64-linux-gnu/libpthread.so.0
- No symbol table info available.
- #1 0x000000000074977e in gdbExtendedBacktrace (dumpFile=22, sigcontext=0x7fffa101d600) at exceptionhandler.cpp:560
- frame = 0x7fffa101dc60
- gdbPipe = 24
- status = 4276480
- wpid = -1467661399
- gdbCommands = "backtrace full\nframe 4\ndisassemble /m\ninfo registers\nquit\n"
- pid = 5872
- instruction = 0x692c26 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+197>
- #2 0x000000000074999a in posixExceptionHandler (signum=11, siginfo=0x7fffa101d730, sigcontext=0x7fffa101d600) at exceptionhandler.cpp:669
- allreadyRunning = 1
- dumpFile = 22
- signal = 0x7d62f8 "SIGSEGV: Invalid memory reference: Address not mapped to object"
- btBuffer = {0x749857, 0x7f40a8854c60, 0x692c26, 0x51c4d7, 0x51134a, 0x523f8c, 0x520a12, 0x5b0550, 0x5b1124, 0x5b31be, 0x5b3491, 0x767417, 0x5b3db0, 0x7653ec, 0x7f40a672ceff, 0x4d4209, 0x0, 0x0, 0x0, 0x0}
- gdmpPath = "/tmp/warzone2100.gdmp-XXXXXX"
- dumpFilename = "/tmp/warzone2100.gdmp-LQ23vU"
- btSize = 16
- #3 <signal handler called>
- No symbol table info available.
- #4 0x0000000000692c26 in buildBlueprint (psStats=0x7f409b25d0c8, xy=..., direction=34203, moduleIndex=0, state=SS_BLUEPRINT_PLANNED) at structure.cpp:1770
- _wzeval = false
- blueprint = 0x7fffa101dc30
- __FUNCTION__ = "buildBlueprint"
- rot = {direction = 1, pitch = 0, roll = 0}
- pIMD = 0x16
- pos = {x = 0, y = 0, z = -1686802320}
- b = {map = {x = -1593713552, y = 32767}, size = {x = 11072, y = 0}}
- moduleNumber = 32576
- #5 0x000000000051c4d7 in Blueprint::buildBlueprint (this=0x7fffa101dc90) at display3d.cpp:288
- No locals.
- #6 0x000000000051134a in getTileBlueprintStructure (mapX=26, mapY=86) at display3d.cpp:362
- psStruct = 0x7f409b757070
- blueprint = {stats = 0x7f409b25d0c8, pos = {x = 3776, y = 14272}, dir = 34203, index = 0, state = SS_BLUEPRINT_PLANNED}
- #7 0x0000000000523f8c in itemUnderMouse (ppObjectUnderMouse=0x7fffa101dd28) at display.cpp:2719
- i = 11
- retVal = MT_NOTARGET
- psNotDroid = 0x0
- psDroid = 0x0
- dispY = 9999
- dispX = 9999
- dispR = 0
- psStructure = 0x7fffa101dd10
- #8 0x0000000000520a12 in processMouseClickInput () at display.cpp:1047
- ObjUnderMouse = 0x0
- i = 539
- __FUNCTION__ = "processMouseClickInput"
- selection = SC_INVALID
- item = MT_NOTARGET
- OverRadar = false
- #9 0x00000000005b0550 in renderLoop () at loop.cpp:320
- intRetVal = INT_NONE
- __FUNCTION__ = "renderLoop"
- quitting = false
- clearMode = -1743149568
- #10 0x00000000005b1124 in gameLoop () at loop.cpp:690
- renderBudget = 194
- renderFraction = {n = 2, d = 5}
- updateFraction = {n = 3, d = 5}
- didTick = true
- __FUNCTION__ = "gameLoop"
- lastFlushTime = 841889
- previousUpdateWasRender = false
- before = 841892
- renderReturn = 32767
- after = 2701254480
- #11 0x00000000005b31be in runGameLoop () at main.cpp:902
- __FUNCTION__ = "runGameLoop"
- #12 0x00000000005b3491 in mainLoop () at main.cpp:1008
- No locals.
- #13 0x0000000000767417 in wzMain3 () at main_sdl.cpp:1257
- event = {type = 4 '\004', active = {type = 4 '\004', gain = 0 '\000', state = 0 '\000'}, key = {type = 4 '\004', which = 0 '\000', state = 0 '\000', keysym = {scancode = 164 '\244', sym = 4294967294, mod = KMOD_NONE, unicode = 0}}, motion = {type = 4 '\004', which = 0 '\000', state = 0 '\000', x = 676, y = 539, xrel = -2, yrel = -1}, button = {type = 4 '\004', which = 0 '\000', button = 0 '\000', state = 0 '\000', x = 676, y = 539}, jaxis = {type = 4 '\004', which = 0 '\000', axis = 0 '\000', value = 676}, jball = {type = 4 '\004', which = 0 '\000', ball = 0 '\000', xrel = 676, yrel = 539}, jhat = {type = 4 '\004', which = 0 '\000', hat = 0 '\000', value = 0 '\000'}, jbutton = {type = 4 '\004', which = 0 '\000', button = 0 '\000', state = 0 '\000'}, resize = {type = 4 '\004', w = 35324580, h = -2}, expose = {type = 4 '\004'}, quit = {type = 4 '\004'}, user = {type = 4 '\004', code = 35324580, data1 = 0xfffffffe, data2 = 0x0}, syswm = {type = 4 '\004', msg = 0xfffffffe}}
- #14 0x00000000005b3db0 in realmain (argc=1, argv=0x7fffa101f268) at main.cpp:1310
- utfargv = 0x7fffa101f268
- __FUNCTION__ = "realmain"
- engine = {<QAbstractFileEngineHandler> = {<No data fields>}, <No data fields>}
- w = 1500
- buf = "Using language: System locale\000\000\000`\360\001\241\377\177\000\000\340\234\247\000\000\000\000\000p\360\001\241\377\177\000\000\fwN\000\000\000\000\000\200\360\001\241\377\177\000\000\340\234\247\000\000\000\000\000\220\360\001\241\377\177\000\000\304dN\000\000\000\000\000\240\360\001\241\377\177\000\000\340\234\247\000\000\000\000\000\260\360\001\241\377\177\000\000\340GN\000\000\000\000\000\300\360\001\241\377\177\000\000p\237N\000\000\000\000\000\340\234\247\000\000\000\000\000\030|t\246@\177\000\000\001\000\000\000\001\000\000\000\070\235\247\000\000\000\000\000\000\361\001\241\377\177\000\000\066%N\000\000\000\000\000`\333\245\000\000\000\000\000\377\377\000\000\001\000\000\000h\333\245\000\000\000\000\000`\333\245\000\000\000\000\000\020\361\001\241\377\177\000\000P%N\000\000\000\000\000\060\361\001\241\377\177\000\000\266\260v\000\000\000\000"
- utfargc = 1
- h = 800
- #15 0x00000000007653ec in main (argc=1, argv=0x7fffa101f268) at main_sdl.cpp:24
- No locals.
- (gdb) #4 0x0000000000692c26 in buildBlueprint (psStats=0x7f409b25d0c8, xy=..., direction=34203, moduleIndex=0, state=SS_BLUEPRINT_PLANNED) at structure.cpp:1770
- 1770 ASSERT_OR_RETURN(NULL, psStats->pIMD[0] != NULL, "No blueprint model for %s", getStatName(psStats));
- (gdb) Dump of assembler code for function buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES):
- 1766 {
- 0x0000000000692b61 <+0>: push %rbp
- 0x0000000000692b62 <+1>: mov %rsp,%rbp
- 0x0000000000692b65 <+4>: push %r12
- 0x0000000000692b67 <+6>: push %rbx
- 0x0000000000692b68 <+7>: sub $0xb0,%rsp
- 0x0000000000692b6f <+14>: mov %rdi,-0x98(%rbp)
- 0x0000000000692b76 <+21>: mov %rsi,-0xa0(%rbp)
- 0x0000000000692b7d <+28>: mov %edx,%eax
- 0x0000000000692b7f <+30>: mov %ecx,-0xa8(%rbp)
- 0x0000000000692b85 <+36>: mov %r8d,-0xac(%rbp)
- 0x0000000000692b8c <+43>: mov %ax,-0xa4(%rbp)
- 1767 STRUCTURE *blueprint;
- 1768
- 1769 ASSERT_OR_RETURN(NULL, psStats != NULL, "No blueprint stats");
- 0x0000000000692b93 <+50>: cmpq $0x0,-0x98(%rbp)
- 0x0000000000692b9b <+58>: setne %al
- 0x0000000000692b9e <+61>: mov %al,-0x11(%rbp)
- 0x0000000000692ba1 <+64>: movzbl -0x11(%rbp),%eax
- 0x0000000000692ba5 <+68>: xor $0x1,%eax
- 0x0000000000692ba8 <+71>: test %al,%al
- 0x0000000000692baa <+73>: je 0x692c0e <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+173>
- 0x0000000000692bac <+75>: mov $0x7ae896,%edx
- 0x0000000000692bb1 <+80>: mov $0x7b0c01,%esi
- 0x0000000000692bb6 <+85>: mov $0x19,%edi
- 0x0000000000692bbb <+90>: mov $0x0,%eax
- 0x0000000000692bc0 <+95>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692bc5 <+100>: mov $0x1581000,%r9d
- 0x0000000000692bcb <+106>: mov $0x7ae8a9,%r8d
- 0x0000000000692bd1 <+112>: mov $0x7ae8b9,%ecx
- 0x0000000000692bd6 <+117>: mov $0x7ade90,%edx
- 0x0000000000692bdb <+122>: mov $0x7b0c01,%esi
- 0x0000000000692be0 <+127>: mov $0x19,%edi
- 0x0000000000692be5 <+132>: mov $0x0,%eax
- 0x0000000000692bea <+137>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692bef <+142>: movzbl 0xeee4aa(%rip),%eax # 0x15810a0 <assertEnabled>
- 0x0000000000692bf6 <+149>: test %al,%al
- 0x0000000000692bf8 <+151>: je 0x692c04 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+163>
- 0x0000000000692bfa <+153>: mov $0x5,%edi
- 0x0000000000692bff <+158>: callq 0x4d2980 <raise@plt>
- 0x0000000000692c04 <+163>: mov $0x0,%eax
- 0x0000000000692c09 <+168>: jmpq 0x69313a <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1497>
- 1770 ASSERT_OR_RETURN(NULL, psStats->pIMD[0] != NULL, "No blueprint model for %s", getStatName(psStats));
- 0x0000000000692c0e <+173>: mov -0x98(%rbp),%rax
- 0x0000000000692c15 <+180>: add $0x38,%rax
- 0x0000000000692c19 <+184>: mov $0x0,%esi
- 0x0000000000692c1e <+189>: mov %rax,%rdi
- 0x0000000000692c21 <+192>: callq 0x6a2dbe <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::operator[](std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size_type) const>
- => 0x0000000000692c26 <+197>: mov (%rax),%rax
- 0x0000000000692c29 <+200>: test %rax,%rax
- 0x0000000000692c2c <+203>: setne %al
- 0x0000000000692c2f <+206>: mov %al,-0x12(%rbp)
- 0x0000000000692c32 <+209>: movzbl -0x12(%rbp),%eax
- 0x0000000000692c36 <+213>: xor $0x1,%eax
- 0x0000000000692c39 <+216>: test %al,%al
- 0x0000000000692c3b <+218>: je 0x692cb1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+336>
- 0x0000000000692c3d <+220>: mov -0x98(%rbp),%rax
- 0x0000000000692c44 <+227>: mov %rax,%rdi
- 0x0000000000692c47 <+230>: callq 0x682f82 <getStatName(void const*)>
- 0x0000000000692c4c <+235>: mov %rax,%rcx
- 0x0000000000692c4f <+238>: mov $0x7ae8cc,%edx
- 0x0000000000692c54 <+243>: mov $0x7b0c01,%esi
- 0x0000000000692c59 <+248>: mov $0x19,%edi
- 0x0000000000692c5e <+253>: mov $0x0,%eax
- 0x0000000000692c63 <+258>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692c68 <+263>: mov $0x1581000,%r9d
- 0x0000000000692c6e <+269>: mov $0x7ae8e6,%r8d
- 0x0000000000692c74 <+275>: mov $0x7ae8ff,%ecx
- 0x0000000000692c79 <+280>: mov $0x7ade90,%edx
- 0x0000000000692c7e <+285>: mov $0x7b0c01,%esi
- 0x0000000000692c83 <+290>: mov $0x19,%edi
- 0x0000000000692c88 <+295>: mov $0x0,%eax
- 0x0000000000692c8d <+300>: callq 0x73a2ea <_debug(code_part, char const*, char const*, ...)>
- 0x0000000000692c92 <+305>: movzbl 0xeee407(%rip),%eax # 0x15810a0 <assertEnabled>
- 0x0000000000692c99 <+312>: test %al,%al
- 0x0000000000692c9b <+314>: je 0x692ca7 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+326>
- 0x0000000000692c9d <+316>: mov $0x5,%edi
- 0x0000000000692ca2 <+321>: callq 0x4d2980 <raise@plt>
- 0x0000000000692ca7 <+326>: mov $0x0,%eax
- 0x0000000000692cac <+331>: jmpq 0x69313a <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1497>
- 1771
- 1772 Vector3i pos(xy, INT32_MIN);
- 0x0000000000692cb1 <+336>: lea -0xa0(%rbp),%rcx
- 0x0000000000692cb8 <+343>: lea -0x80(%rbp),%rax
- 0x0000000000692cbc <+347>: mov $0x80000000,%edx
- 0x0000000000692cc1 <+352>: mov %rcx,%rsi
- 0x0000000000692cc4 <+355>: mov %rax,%rdi
- 0x0000000000692cc7 <+358>: callq 0x4f71e8 <Vector3i::Vector3i(Vector2i const&, int)>
- 1773 Rotation rot((direction + 0x2000)&0xC000, 0, 0); // Round direction to nearest 90°.
- 0x0000000000692ccc <+363>: movzwl -0xa4(%rbp),%eax
- 0x0000000000692cd3 <+370>: add $0x2000,%eax
- 0x0000000000692cd8 <+375>: mov %eax,%esi
- 0x0000000000692cda <+377>: and $0xc000,%esi
- 0x0000000000692ce0 <+383>: lea -0x40(%rbp),%rax
- 0x0000000000692ce4 <+387>: mov $0x0,%ecx
- 0x0000000000692ce9 <+392>: mov $0x0,%edx
- 0x0000000000692cee <+397>: mov %rax,%rdi
- 0x0000000000692cf1 <+400>: callq 0x4ec3ce <Rotation::Rotation(int, int, int)>
- 1774
- 1775 StructureBounds b = getStructureBounds(psStats, xy, direction);
- 0x0000000000692cf6 <+405>: movzwl -0xa4(%rbp),%edx
- 0x0000000000692cfd <+412>: mov -0xa0(%rbp),%rcx
- 0x0000000000692d04 <+419>: mov -0x98(%rbp),%rax
- 0x0000000000692d0b <+426>: mov %rcx,%rsi
- 0x0000000000692d0e <+429>: mov %rax,%rdi
- 0x0000000000692d11 <+432>: callq 0x6a1968 <getStructureBounds(STRUCTURE_STATS const*, Vector2i, uint16_t)>
- 0x0000000000692d16 <+437>: mov %rax,%rcx
- 0x0000000000692d19 <+440>: mov %rdx,%rax
- 0x0000000000692d1c <+443>: mov %rcx,-0xc0(%rbp)
- 0x0000000000692d23 <+450>: mov %rax,-0xb8(%rbp)
- 0x0000000000692d2a <+457>: mov -0xc0(%rbp),%rax
- 0x0000000000692d31 <+464>: mov %rax,-0x90(%rbp)
- 0x0000000000692d38 <+471>: mov -0xb8(%rbp),%rax
- 0x0000000000692d3f <+478>: mov %rax,-0x88(%rbp)
- 1776 for (int j = 0; j <= b.size.y; ++j)
- 0x0000000000692d46 <+485>: movl $0x0,-0x18(%rbp)
- 0x0000000000692d4d <+492>: jmp 0x692dac <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+587>
- 0x0000000000692da8 <+583>: addl $0x1,-0x18(%rbp)
- 0x0000000000692dac <+587>: mov -0x84(%rbp),%eax
- 0x0000000000692db2 <+593>: cmp -0x18(%rbp),%eax
- 0x0000000000692db5 <+596>: setge %al
- 0x0000000000692db8 <+599>: test %al,%al
- 0x0000000000692dba <+601>: jne 0x692d4f <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+494>
- 1777 for (int i = 0; i <= b.size.x; ++i)
- 0x0000000000692d4f <+494>: movl $0x0,-0x1c(%rbp)
- 0x0000000000692d56 <+501>: jmp 0x692d98 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+567>
- 0x0000000000692d94 <+563>: addl $0x1,-0x1c(%rbp)
- 0x0000000000692d98 <+567>: mov -0x88(%rbp),%eax
- 0x0000000000692d9e <+573>: cmp -0x1c(%rbp),%eax
- 0x0000000000692da1 <+576>: setge %al
- 0x0000000000692da4 <+579>: test %al,%al
- 0x0000000000692da6 <+581>: jne 0x692d58 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+503>
- 1778 {
- 1779 pos.z = std::max(pos.z, map_TileHeight(b.map.x + i, b.map.y + j));
- 0x0000000000692d58 <+503>: mov -0x8c(%rbp),%eax
- 0x0000000000692d5e <+509>: mov %eax,%edx
- 0x0000000000692d60 <+511>: add -0x18(%rbp),%edx
- 0x0000000000692d63 <+514>: mov -0x90(%rbp),%eax
- 0x0000000000692d69 <+520>: add -0x1c(%rbp),%eax
- 0x0000000000692d6c <+523>: mov %edx,%esi
- 0x0000000000692d6e <+525>: mov %eax,%edi
- 0x0000000000692d70 <+527>: callq 0x68d603 <map_TileHeight(int32_t, int32_t)>
- 0x0000000000692d75 <+532>: mov %eax,-0x28(%rbp)
- 0x0000000000692d78 <+535>: lea -0x28(%rbp),%rax
- 0x0000000000692d7c <+539>: lea -0x80(%rbp),%rdx
- 0x0000000000692d80 <+543>: add $0x8,%rdx
- 0x0000000000692d84 <+547>: mov %rax,%rsi
- 0x0000000000692d87 <+550>: mov %rdx,%rdi
- 0x0000000000692d8a <+553>: callq 0x4dd1ae <std::max<int>(int const&, int const&)>
- 0x0000000000692d8f <+558>: mov (%rax),%eax
- 0x0000000000692d91 <+560>: mov %eax,-0x78(%rbp)
- 1780 }
- 1781
- 1782 int moduleNumber = 0;
- 0x0000000000692dbc <+603>: movl $0x0,-0x2c(%rbp)
- 1783 std::vector<iIMDShape *> const *pIMD = &psStats->pIMD;
- 0x0000000000692dc3 <+610>: mov -0x98(%rbp),%rax
- 0x0000000000692dca <+617>: add $0x38,%rax
- 0x0000000000692dce <+621>: mov %rax,-0x48(%rbp)
- 1784 if (IsStatExpansionModule(psStats))
- 0x0000000000692dd2 <+625>: mov -0x98(%rbp),%rax
- 0x0000000000692dd9 <+632>: mov %rax,%rdi
- 0x0000000000692ddc <+635>: callq 0x68ddc9 <IsStatExpansionModule(STRUCTURE_STATS const*)>
- 0x0000000000692de1 <+640>: test %al,%al
- 0x0000000000692de3 <+642>: je 0x692ea1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+832>
- 1785 {
- 1786 STRUCTURE *baseStruct = castStructure(worldTile(xy)->psObject);
- 0x0000000000692de9 <+648>: lea -0xa0(%rbp),%rax
- 0x0000000000692df0 <+655>: mov %rax,%rdi
- 0x0000000000692df3 <+658>: callq 0x68d5d9 <worldTile(Vector2i const&)>
- 0x0000000000692df8 <+663>: mov 0x20(%rax),%rax
- 0x0000000000692dfc <+667>: mov %rax,%rdi
- 0x0000000000692dff <+670>: callq 0x68d13f <castStructure(SIMPLE_OBJECT*)>
- 0x0000000000692e04 <+675>: mov %rax,-0x50(%rbp)
- 1787 if (baseStruct != NULL)
- 0x0000000000692e08 <+679>: cmpq $0x0,-0x50(%rbp)
- 0x0000000000692e0d <+684>: je 0x692ea1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+832>
- 1788 {
- 1789 if (moduleIndex == 0)
- 0x0000000000692e13 <+690>: cmpl $0x0,-0xa8(%rbp)
- 0x0000000000692e1a <+697>: jne 0x692e33 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+722>
- 1790 {
- 1791 moduleIndex = nextModuleToBuild(baseStruct, 0);
- 0x0000000000692e1c <+699>: mov -0x50(%rbp),%rax
- 0x0000000000692e20 <+703>: mov $0x0,%esi
- 0x0000000000692e25 <+708>: mov %rax,%rdi
- 0x0000000000692e28 <+711>: callq 0x52ed8a <nextModuleToBuild(STRUCTURE const*, int)>
- 0x0000000000692e2d <+716>: mov %eax,-0xa8(%rbp)
- 1792 }
- 1793 int baseModuleNumber = moduleIndex*2 - 1; // *2-1 because even-numbered IMDs are structures, odd-numbered IMDs are just the modules.
- 0x0000000000692e33 <+722>: mov -0xa8(%rbp),%eax
- 0x0000000000692e39 <+728>: add %eax,%eax
- 0x0000000000692e3b <+730>: sub $0x1,%eax
- 0x0000000000692e3e <+733>: mov %eax,-0x20(%rbp)
- 1794 std::vector<iIMDShape *> const *basepIMD = &baseStruct->pStructureType->pIMD;
- 0x0000000000692e41 <+736>: mov -0x50(%rbp),%rax
- 0x0000000000692e45 <+740>: mov 0xa8(%rax),%rax
- 0x0000000000692e4c <+747>: add $0x38,%rax
- 0x0000000000692e50 <+751>: mov %rax,-0x58(%rbp)
- 1795 if ((unsigned)baseModuleNumber < basepIMD->size())
- 0x0000000000692e54 <+755>: mov -0x20(%rbp),%eax
- 0x0000000000692e57 <+758>: mov %eax,%ebx
- 0x0000000000692e59 <+760>: mov -0x58(%rbp),%rax
- 0x0000000000692e5d <+764>: mov %rax,%rdi
- 0x0000000000692e60 <+767>: callq 0x572638 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size() const>
- 0x0000000000692e65 <+772>: cmp %rax,%rbx
- 0x0000000000692e68 <+775>: setb %al
- 0x0000000000692e6b <+778>: test %al,%al
- 0x0000000000692e6d <+780>: je 0x692ea1 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+832>
- 1796 {
- 1797 // Draw the module.
- 1798 moduleNumber = baseModuleNumber;
- 0x0000000000692e6f <+782>: mov -0x20(%rbp),%eax
- 0x0000000000692e72 <+785>: mov %eax,-0x2c(%rbp)
- 1799 pIMD = basepIMD;
- 0x0000000000692e75 <+788>: mov -0x58(%rbp),%rax
- 0x0000000000692e79 <+792>: mov %rax,-0x48(%rbp)
- 1800 pos = baseStruct->pos;
- 0x0000000000692e7d <+796>: mov -0x50(%rbp),%rax
- 0x0000000000692e81 <+800>: mov 0x10(%rax),%rdx
- 0x0000000000692e85 <+804>: mov %rdx,-0x80(%rbp)
- 0x0000000000692e89 <+808>: mov 0x18(%rax),%eax
- 0x0000000000692e8c <+811>: mov %eax,-0x78(%rbp)
- 1801 rot = baseStruct->rot;
- 0x0000000000692e8f <+814>: mov -0x50(%rbp),%rax
- 0x0000000000692e93 <+818>: mov 0x1c(%rax),%edx
- 0x0000000000692e96 <+821>: mov %edx,-0x40(%rbp)
- 0x0000000000692e99 <+824>: movzwl 0x20(%rax),%eax
- 0x0000000000692e9d <+828>: mov %ax,-0x3c(%rbp)
- 1802 }
- 1803 }
- 1804 }
- 1805
- 1806 blueprint = new STRUCTURE(0, selectedPlayer);
- 0x0000000000692ea1 <+832>: mov $0x198,%edi
- 0x0000000000692ea6 <+837>: callq 0x4d2910 <_Znwm@plt>
- 0x0000000000692eab <+842>: mov %rax,%rbx
- 0x0000000000692eae <+845>: mov 0xeee834(%rip),%edx # 0x15816e8 <selectedPlayer>
- 0x0000000000692eb4 <+851>: mov %rbx,%rax
- 0x0000000000692eb7 <+854>: mov $0x0,%esi
- 0x0000000000692ebc <+859>: mov %rax,%rdi
- 0x0000000000692ebf <+862>: callq 0x6984e8 <STRUCTURE::STRUCTURE(uint32_t, unsigned int)>
- 0x0000000000692ec4 <+867>: mov %rbx,-0x60(%rbp)
- 0x0000000000693149 <+1512>: mov %rbx,%rdi
- 0x000000000069314c <+1515>: callq 0x4d2790 <_ZdlPv@plt>
- 0x0000000000693151 <+1520>: mov %r12,%rax
- 0x0000000000693154 <+1523>: mov %rax,%rdi
- 0x0000000000693157 <+1526>: callq 0x4d3c50 <_Unwind_Resume@plt>
- 1807 // construct the fake structure
- 1808 blueprint->pStructureType = const_cast<STRUCTURE_STATS *>(psStats); // Couldn't be bothered to fix const correctness everywhere.
- 0x0000000000692ec8 <+871>: mov -0x60(%rbp),%rax
- 0x0000000000692ecc <+875>: mov -0x98(%rbp),%rdx
- 0x0000000000692ed3 <+882>: mov %rdx,0xa8(%rax)
- 1809 blueprint->visible[selectedPlayer] = UBYTE_MAX;
- 0x0000000000692eda <+889>: mov 0xeee808(%rip),%eax # 0x15816e8 <selectedPlayer>
- 0x0000000000692ee0 <+895>: mov -0x60(%rbp),%rdx
- 0x0000000000692ee4 <+899>: mov %eax,%eax
- 0x0000000000692ee6 <+901>: movb $0xff,0x4b(%rdx,%rax,1)
- 1810 blueprint->sDisplay.imd = (*pIMD)[std::min<int>(moduleNumber, pIMD->size() - 1)];
- 0x0000000000692eeb <+906>: mov -0x48(%rbp),%rax
- 0x0000000000692eef <+910>: mov %rax,%rdi
- 0x0000000000692ef2 <+913>: callq 0x572638 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size() const>
- 0x0000000000692ef7 <+918>: sub $0x1,%eax
- 0x0000000000692efa <+921>: mov %eax,-0x30(%rbp)
- 0x0000000000692efd <+924>: lea -0x30(%rbp),%rdx
- 0x0000000000692f01 <+928>: lea -0x2c(%rbp),%rax
- 0x0000000000692f05 <+932>: mov %rdx,%rsi
- 0x0000000000692f08 <+935>: mov %rax,%rdi
- 0x0000000000692f0b <+938>: callq 0x4e08c3 <std::min<int>(int const&, int const&)>
- 0x0000000000692f10 <+943>: mov (%rax),%eax
- 0x0000000000692f12 <+945>: movslq %eax,%rdx
- 0x0000000000692f15 <+948>: mov -0x48(%rbp),%rax
- 0x0000000000692f19 <+952>: mov %rdx,%rsi
- 0x0000000000692f1c <+955>: mov %rax,%rdi
- 0x0000000000692f1f <+958>: callq 0x6a2dbe <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::operator[](std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size_type) const>
- 0x0000000000692f24 <+963>: mov (%rax),%rdx
- 0x0000000000692f27 <+966>: mov -0x60(%rbp),%rax
- 0x0000000000692f2b <+970>: mov %rdx,0x30(%rax)
- 1811 blueprint->pos = pos;
- 0x0000000000692f2f <+974>: mov -0x60(%rbp),%rax
- 0x0000000000692f33 <+978>: mov -0x80(%rbp),%rdx
- 0x0000000000692f37 <+982>: mov %rdx,0x10(%rax)
- 0x0000000000692f3b <+986>: mov -0x78(%rbp),%edx
- 0x0000000000692f3e <+989>: mov %edx,0x18(%rax)
- 1812 blueprint->rot = rot;
- 0x0000000000692f41 <+992>: mov -0x60(%rbp),%rax
- 0x0000000000692f45 <+996>: mov -0x40(%rbp),%edx
- 0x0000000000692f48 <+999>: mov %edx,0x1c(%rax)
- 0x0000000000692f4b <+1002>: movzwl -0x3c(%rbp),%edx
- 0x0000000000692f4f <+1006>: mov %dx,0x20(%rax)
- 1813 blueprint->selected = false;
- 0x0000000000692f53 <+1010>: mov -0x60(%rbp),%rax
- 0x0000000000692f57 <+1014>: movb $0x0,0x49(%rax)
- 1814
- 1815 blueprint->numWeaps = 0;
- 0x0000000000692f5b <+1018>: mov -0x60(%rbp),%rax
- 0x0000000000692f5f <+1022>: movw $0x0,0xd0(%rax)
- 1816 blueprint->asWeaps[0].nStat = 0;
- 0x0000000000692f68 <+1031>: mov -0x60(%rbp),%rax
- 0x0000000000692f6c <+1035>: movl $0x0,0xd4(%rax)
- 1817
- 1818 // give defensive structures a weapon
- 1819 if (psStats->psWeapStat[0])
- 0x0000000000692f76 <+1045>: mov -0x98(%rbp),%rax
- 0x0000000000692f7d <+1052>: mov 0x70(%rax),%rax
- 0x0000000000692f81 <+1056>: test %rax,%rax
- 0x0000000000692f84 <+1059>: je 0x692fc5 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1124>
- 1820 {
- 1821 blueprint->asWeaps[0].nStat = psStats->psWeapStat[0] - asWeaponStats;
- 0x0000000000692f86 <+1061>: mov -0x98(%rbp),%rax
- 0x0000000000692f8d <+1068>: mov 0x70(%rax),%rax
- 0x0000000000692f91 <+1072>: mov %rax,%rdx
- 0x0000000000692f94 <+1075>: mov 0xaf1455(%rip),%rax # 0x11843f0 <asWeaponStats>
- 0x0000000000692f9b <+1082>: mov %rdx,%rcx
- 0x0000000000692f9e <+1085>: sub %rax,%rcx
- 0x0000000000692fa1 <+1088>: mov %rcx,%rax
- 0x0000000000692fa4 <+1091>: mov %rax,%rdx
- 0x0000000000692fa7 <+1094>: sar $0x3,%rdx
- 0x0000000000692fab <+1098>: movabs $0x34f72c234f72c235,%rax
- 0x0000000000692fb5 <+1108>: imul %rdx,%rax
- 0x0000000000692fb9 <+1112>: mov %eax,%edx
- 0x0000000000692fbb <+1114>: mov -0x60(%rbp),%rax
- 0x0000000000692fbf <+1118>: mov %edx,0xd4(%rax)
- 1822 }
- 1823 // things with sensors or ecm (or repair facilities) need these set, even if they have no official weapon
- 1824 blueprint->numWeaps = 0;
- 0x0000000000692fc5 <+1124>: mov -0x60(%rbp),%rax
- 0x0000000000692fc9 <+1128>: movw $0x0,0xd0(%rax)
- 1825 blueprint->asWeaps[0].lastFired = 0;
- 0x0000000000692fd2 <+1137>: mov -0x60(%rbp),%rax
- 0x0000000000692fd6 <+1141>: movl $0x0,0xdc(%rax)
- 1826 blueprint->asWeaps[0].rot.pitch = 0;
- 0x0000000000692fe0 <+1151>: mov -0x60(%rbp),%rax
- 0x0000000000692fe4 <+1155>: movw $0x0,0xe6(%rax)
- 1827 blueprint->asWeaps[0].rot.direction = 0;
- 0x0000000000692fed <+1164>: mov -0x60(%rbp),%rax
- 0x0000000000692ff1 <+1168>: movw $0x0,0xe4(%rax)
- 1828 blueprint->asWeaps[0].rot.roll = 0;
- 0x0000000000692ffa <+1177>: mov -0x60(%rbp),%rax
- 0x0000000000692ffe <+1181>: movw $0x0,0xe8(%rax)
- 1829 blueprint->asWeaps[0].prevRot = blueprint->asWeaps[0].rot;
- 0x0000000000693007 <+1190>: mov -0x60(%rbp),%rax
- 0x000000000069300b <+1194>: mov -0x60(%rbp),%rdx
- 0x000000000069300f <+1198>: mov 0xe4(%rdx),%ecx
- 0x0000000000693015 <+1204>: mov %ecx,0xea(%rax)
- 0x000000000069301b <+1210>: movzwl 0xe8(%rdx),%edx
- 0x0000000000693022 <+1217>: mov %dx,0xee(%rax)
- 1830
- 1831 blueprint->expectedDamage = 0;
- 0x0000000000693029 <+1224>: mov -0x60(%rbp),%rax
- 0x000000000069302d <+1228>: movl $0x0,0x170(%rax)
- 1832
- 1833 // Times must be different, but don't otherwise matter.
- 1834 blueprint->time = 23;
- 0x0000000000693037 <+1238>: mov -0x60(%rbp),%rax
- 0x000000000069303b <+1242>: movl $0x17,0x2c(%rax)
- 1835 blueprint->prevTime = 42;
- 0x0000000000693042 <+1249>: mov -0x60(%rbp),%rax
- 0x0000000000693046 <+1253>: movl $0x2a,0x174(%rax)
- 1836
- 1837 blueprint->status = state;
- 0x0000000000693050 <+1263>: mov -0x60(%rbp),%rax
- 0x0000000000693054 <+1267>: mov -0xac(%rbp),%edx
- 0x000000000069305a <+1273>: mov %edx,0xb0(%rax)
- 1838
- 1839 // Rotate wall if needed.
- 1840 if (blueprint->pStructureType->type == REF_WALL || blueprint->pStructureType->type == REF_GATE)
- 0x0000000000693060 <+1279>: mov -0x60(%rbp),%rax
- 0x0000000000693064 <+1283>: mov 0xa8(%rax),%rax
- 0x000000000069306b <+1290>: mov 0x10(%rax),%eax
- 0x000000000069306e <+1293>: cmp $0x7,%eax
- 0x0000000000693071 <+1296>: je 0x69308a <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1321>
- 0x0000000000693073 <+1298>: mov -0x60(%rbp),%rax
- 0x0000000000693077 <+1302>: mov 0xa8(%rax),%rax
- 0x000000000069307e <+1309>: mov 0x10(%rax),%eax
- 0x0000000000693081 <+1312>: cmp $0x16,%eax
- 0x0000000000693084 <+1315>: jne 0x693136 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1493>
- 1841 {
- 1842 WallOrientation scanType = structChooseWallTypeBlueprint(map_coord(removeZ(blueprint->pos)));
- 0x000000000069308a <+1321>: mov -0x60(%rbp),%rax
- 0x000000000069308e <+1325>: add $0x10,%rax
- 0x0000000000693092 <+1329>: mov %rax,%rdi
- 0x0000000000693095 <+1332>: callq 0x68cb60 <removeZ(Vector3i const&)>
- 0x000000000069309a <+1337>: mov %rax,-0x70(%rbp)
- 0x000000000069309e <+1341>: lea -0x70(%rbp),%rax
- 0x00000000006930a2 <+1345>: mov %rax,%rdi
- 0x00000000006930a5 <+1348>: callq 0x68d2f1 <map_coord(Vector2i const&)>
- 0x00000000006930aa <+1353>: mov %rax,%rdi
- 0x00000000006930ad <+1356>: callq 0x690c10 <structChooseWallTypeBlueprint(Vector2i)>
- 0x00000000006930b2 <+1361>: mov %eax,-0x24(%rbp)
- 1843 unsigned type = wallType(scanType);
- 0x00000000006930b5 <+1364>: mov -0x24(%rbp),%eax
- 0x00000000006930b8 <+1367>: mov %eax,%edi
- 0x00000000006930ba <+1369>: callq 0x690656 <wallType(WallOrientation)>
- 0x00000000006930bf <+1374>: movzwl %ax,%eax
- 0x00000000006930c2 <+1377>: mov %eax,-0x34(%rbp)
- 1844 if (scanType != WallConnectNone)
- 0x00000000006930c5 <+1380>: cmpl $0x0,-0x24(%rbp)
- 0x00000000006930c9 <+1384>: je 0x693136 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+1493>
- 1845 {
- 1846 blueprint->rot.direction = wallDir(scanType);
- 0x00000000006930cb <+1386>: mov -0x24(%rbp),%eax
- 0x00000000006930ce <+1389>: mov %eax,%edi
- 0x00000000006930d0 <+1391>: callq 0x6905cb <wallDir(WallOrientation)>
- 0x00000000006930d5 <+1396>: mov -0x60(%rbp),%rdx
- 0x00000000006930d9 <+1400>: mov %ax,0x1c(%rdx)
- 1847 blueprint->sDisplay.imd = blueprint->pStructureType->pIMD[std::min<unsigned>(type, blueprint->pStructureType->pIMD.size() - 1)];
- 0x00000000006930dd <+1404>: mov -0x60(%rbp),%rax
- 0x00000000006930e1 <+1408>: mov 0xa8(%rax),%rax
- 0x00000000006930e8 <+1415>: add $0x38,%rax
- 0x00000000006930ec <+1419>: mov %rax,%rdi
- 0x00000000006930ef <+1422>: callq 0x572638 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size() const>
- 0x00000000006930f4 <+1427>: sub $0x1,%eax
- 0x00000000006930f7 <+1430>: mov %eax,-0x38(%rbp)
- 0x00000000006930fa <+1433>: lea -0x38(%rbp),%rdx
- 0x00000000006930fe <+1437>: lea -0x34(%rbp),%rax
- 0x0000000000693102 <+1441>: mov %rdx,%rsi
- 0x0000000000693105 <+1444>: mov %rax,%rdi
- 0x0000000000693108 <+1447>: callq 0x4e372b <std::min<unsigned int>(unsigned int const&, unsigned int const&)>
- 0x000000000069310d <+1452>: mov (%rax),%eax
- 0x000000000069310f <+1454>: mov %eax,%eax
- 0x0000000000693111 <+1456>: mov -0x60(%rbp),%rdx
- 0x0000000000693115 <+1460>: mov 0xa8(%rdx),%rdx
- 0x000000000069311c <+1467>: add $0x38,%rdx
- 0x0000000000693120 <+1471>: mov %rax,%rsi
- 0x0000000000693123 <+1474>: mov %rdx,%rdi
- 0x0000000000693126 <+1477>: callq 0x4fa8d0 <std::vector<iIMDShape*, std::allocator<iIMDShape*> >::operator[](std::vector<iIMDShape*, std::allocator<iIMDShape*> >::size_type)>
- 0x000000000069312b <+1482>: mov (%rax),%rdx
- 0x000000000069312e <+1485>: mov -0x60(%rbp),%rax
- 0x0000000000693132 <+1489>: mov %rdx,0x30(%rax)
- 1848 }
- 1849 }
- 1850
- 1851 return blueprint;
- 0x0000000000693136 <+1493>: mov -0x60(%rbp),%rax
- 1852 }
- 0x000000000069313a <+1497>: add $0xb0,%rsp
- 0x0000000000693141 <+1504>: pop %rbx
- 0x0000000000693142 <+1505>: pop %r12
- 0x0000000000693144 <+1507>: leaveq
- 0x0000000000693145 <+1508>: retq
- 0x0000000000693146 <+1509>: mov %rax,%r12
- End of assembler dump.
- (gdb) rax 0x0 0
- rbx 0x21b 539
- rcx 0x0 0
- rdx 0x0 0
- rsi 0x0 0
- rdi 0x7f409b25d100 139915457581312
- rbp 0x7fffa101dc50 0x7fffa101dc50
- rsp 0x7fffa101db90 0x7fffa101db90
- r8 0x5 5
- r9 0x101010101010101 72340172838076673
- r10 0x0 0
- r11 0x7f40a6792f22 139915647594274
- r12 0x16 22
- r13 0x1 1
- r14 0xf 15
- r15 0x7f40aa0f0269 139915707744873
- rip 0x692c26 0x692c26 <buildBlueprint(STRUCTURE_STATS const*, Vector2i, uint16_t, unsigned int, STRUCT_STATES)+197>
- eflags 0x246 [ PF ZF IF ]
- cs 0x33 51
- ss 0x2b 43
- ds 0x0 0
- es 0x0 0
- fs 0x0 0
- gs 0x0 0
- (gdb) A debugging session is active.
- Inferior 1 [process 5220] will be detached.
- Quit anyway? (y or n) [answered Y; input not from terminal]
- Detaching from program: /usr/local/bin/warzone2100, process 5220
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement