View Issue Details

IDProjectCategoryView StatusLast Update
0002346FSSCPmath-relatedpublic2012-12-05 03:54
ReporterFUBAR-BDHR Assigned ToValathil  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionno change required 
Product Version3.6.13 
Summary0002346: Nul vec3d error docking ship in FRED
DescriptionThis one is bad data related but it still shouldn't just crash.

Added a dock to a ship with points:

-0.100000:13.000000:55.599998
-0.100000:12.750000:55.599998
normal 0:1:0.

Of course the second one was supposed to be 56.6 not 55.6. When I added a ship to the dock in FRED I received the nul vec3d error.
Additional InformationBuilds based off of Antipodes r6782. Attaching stack and variables.
TagsNo tags attached.

Activities

2010-11-27 04:05

 

fred_dock_nulvec3d.txt (21,633 bytes)   
 	fred2_open_3_6_13d_INF_SSE2.exe!debug_int3(char * file=0x00b81bcc, int line=0x000004fd)  Line 764	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!Warning(char * filename=0x00b7a057, int line=0x000001c4, const char * format=0x00b7a120, ...)  Line 1277 + 0x13 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!vm_vec_copy_normalize(vec3d * dest=0x0012e154, vec3d * src=0x0012e154)  Line 453 + 0x18 bytes	C++
>	fred2_open_3_6_13d_INF_SSE2.exe!vm_vec_normalize(vec3d * v=0x0012e154)  Line 477 + 0xd bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!vm_vector_2_matrix(matrix * m=0x0012e154, vec3d * fvec=0x0012e1a8, vec3d * uvec=0x0012e194, vec3d * rvec=0x00000000)  Line 882 + 0x9 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!set_goal_dock_orient(matrix * dom=0x0012e59c, vec3d * docker_p0=0x0012e55c, vec3d * docker_p1=0x0012e548, vec3d * docker_p0_norm=0x0012e534, matrix * docker_orient=0x016ccab8, vec3d * dockee_p0=0x0012e520, vec3d * dockee_p1=0x0012e50c, vec3d * dockee_p0_norm=0x0012e4f8, matrix * dockee_orient=0x016cbfb4)  Line 8892 + 0x13 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!dock_orient_and_approach(object * docker_objp=0x016cca88, int docker_index=0x00000003, object * dockee_objp=0x016cbf84, int dockee_index=0x00000008, int dock_mode=0x00000006, rotating_dockpoint_info * rdinfo=0x0012e428)  Line 9163 + 0x41 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!ai_dock_with_object(object * docker=0x016cca88, int docker_index=0x00000003, object * dockee=0x016cbf84, int dockee_index=0x00000008, int dock_type=0x00000002)  Line 3172 + 0x19 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!initial_status::dock(object * objp=0x016cbf84, int dockpoint=0x00000008, object * other_objp=0x016cca88, int other_dockpoint=0x00000003)  Line 915 + 0x17 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!initial_status::update_docking_info()  Line 899	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!initial_status::OnOK()  Line 486	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!_AfxDispatchCmdMsg(CCmdTarget * pTarget=0x0012f448, unsigned int nID=0x00000001, int nCode=0x00000000, void (void)* pfn=0x009736e0, void * pExtra=0x00000000, unsigned int nSig=0x00000039, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 82	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CCmdTarget::OnCmdMsg(unsigned int nID=0x00000001, int nCode=0x00000000, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 381 + 0x27 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CDialog::OnCmdMsg(unsigned int nID=0x00000001, int nCode=0x00000000, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 85 + 0x18 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::OnCommand(unsigned int wParam=0x00000001, long lParam=0x002e0fc6)  Line 2364	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::OnWndMsg(unsigned int message=0x00000111, unsigned int wParam=0x00000001, long lParam=0x002e0fc6, long * pResult=0x0012ee64)  Line 1769 + 0x1e bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::WindowProc(unsigned int message=0x00000111, unsigned int wParam=0x00000001, long lParam=0x002e0fc6)  Line 1755 + 0x20 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxCallWndProc(CWnd * pWnd=0x0012f448, HWND__ * hWnd=0x00e60b98, unsigned int nMsg=0x00000111, unsigned int wParam=0x00000001, long lParam=0x002e0fc6)  Line 240 + 0x1c bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxWndProc(HWND__ * hWnd=0x00e60b98, unsigned int nMsg=0x00000111, unsigned int wParam=0x00000001, long lParam=0x002e0fc6)  Line 403	C++
 	user32.dll!7e418734() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]	
 	user32.dll!7e418816() 	
 	user32.dll!7e428ea0() 	
 	user32.dll!7e43c6d3() 	
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::IsDialogMessageA(tagMSG * lpMsg=0x0017dec0)  Line 198	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::PreTranslateInput(tagMSG * lpMsg=0x0017dec0)  Line 4332	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CDialog::PreTranslateMessage(tagMSG * pMsg=0x0017dec0)  Line 80	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::WalkPreTranslateTree(HWND__ * hWndStop=0x01850b56, tagMSG * pMsg=0x0017dec0)  Line 2946 + 0x14 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxInternalPreTranslateMessage(tagMSG * pMsg=0x0017dec0)  Line 233 + 0x12 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWinThread::PreTranslateMessage(tagMSG * pMsg=0x0017dec0)  Line 777 + 0x9 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxPreTranslateMessage(tagMSG * pMsg=0x0017dec0)  Line 252 + 0x11 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxInternalPumpMessage()  Line 178 + 0x18 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWinThread::PumpMessage()  Line 900	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxPumpMessage()  Line 190 + 0xd bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::RunModalLoop(unsigned long dwFlags=0x00000004)  Line 4386 + 0x5 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CDialog::DoModal()  Line 584 + 0xc bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CShipEditorDlg::OnInitialStatus()  Line 1568	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!_AfxDispatchCmdMsg(CCmdTarget * pTarget=0x00c8b178, unsigned int nID=0x0000054a, int nCode=0x00000000, void (void)* pfn=0x00496480, void * pExtra=0x00000000, unsigned int nSig=0x00000039, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 82	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CCmdTarget::OnCmdMsg(unsigned int nID=0x0000054a, int nCode=0x00000000, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 381 + 0x27 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CDialog::OnCmdMsg(unsigned int nID=0x0000054a, int nCode=0x00000000, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 85 + 0x18 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::OnCommand(unsigned int wParam=0x0000054a, long lParam=0x00ab0c72)  Line 2364	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CShipEditorDlg::OnCommand(unsigned int wParam=0x0000054a, long lParam=0x00ab0c72)  Line 1451	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::OnWndMsg(unsigned int message=0x00000111, unsigned int wParam=0x0000054a, long lParam=0x00ab0c72, long * pResult=0x0012fa3c)  Line 1769 + 0x1e bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!CWnd::WindowProc(unsigned int message=0x00000111, unsigned int wParam=0x0000054a, long lParam=0x00ab0c72)  Line 1755 + 0x20 bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxCallWndProc(CWnd * pWnd=0x00c8b178, HWND__ * hWnd=0x00a20c68, unsigned int nMsg=0x00000111, unsigned int wParam=0x0000054a, long lParam=0x00ab0c72)  Line 240 + 0x1c bytes	C++
 	fred2_open_3_6_13d_INF_SSE2.exe!AfxWndProc(HWND__ * hWnd=0x00a20c68, unsigned int nMsg=0x00000111, unsigned int wParam=0x0000054a, long lParam=0x00ab0c72)  Line 403	C++
 	user32.dll!7e418734() 	
 	user32.dll!7e418816() 	
 	user32.dll!7e428ea0() 	
 	user32.dll!7e43c6d3() 	
 	fred2_open_3_6_13d_INF_SSE2.exe!model_render_buffers(polymodel * pm=0x00000000, int mn=0x00000000, bool is_child=false)  Line 4844 + 0x4 bytes	C++



Locals:

-		v	0x0012e154 {xyz={...} a1d=0x0012e154 }	vec3d *
+		xyz	{x=0.00000000 y=0.00000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
+		a1d	0x0012e154	float [3]
		t	-1.0737418e+008	float


Locals up one:

-		m	0x0012e154 {vec={...} a2d=0x0012e154 a1d=0x0012e154 }	matrix *
-		vec	{rvec={...} uvec={...} fvec={...} }	matrix::<unnamed-tag>::<unnamed-type-vec>
-		rvec	{xyz={...} a1d=0x0012e154 }	vec3d
+		xyz	{x=0.00000000 y=0.00000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e154	float [3]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	-0.00000000	float
-		uvec	{xyz={...} a1d=0x0012e160 }	vec3d
+		xyz	{x=0.00000000 y=-1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e160	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		fvec	{xyz={...} a1d=0x0012e16c }	vec3d
+		xyz	{x=-0.00000000 y=-1.0000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e16c	float [3]
		[0x0]	-0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	-0.00000000	float
-		a2d	0x0012e154	float [3][3]
+		[0x0]	0x0012e154	float [3]
+		[0x1]	0x0012e160	float [3]
+		[0x2]	0x0012e16c	float [3]
-		a1d	0x0012e154	float [9]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	-0.00000000	float
		[0x3]	0.00000000	float
		[0x4]	-1.0000000	float
		[0x5]	0.00000000	float
		[0x6]	-0.00000000	float
		[0x7]	-1.0000000	float
		[0x8]	-0.00000000	float
-		fvec	0x0012e1a8 {xyz={...} a1d=0x0012e1a8 }	vec3d *
+		xyz	{x=-0.00000000 y=-1.0000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e1a8	float [3]
		[0x0]	-0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	-0.00000000	float
-		uvec	0x0012e194 {xyz={...} a1d=0x0012e194 }	vec3d *
+		xyz	{x=0.00000000 y=-1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e194	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		rvec	0x00000000 {xyz={...} a1d=0x00000000 }	vec3d *
+		xyz	{x=??? y=??? z=??? }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x00000000	float [3]
		[0x0]	CXX0030: Error: expression cannot be evaluated	
		[0x1]	CXX0030: Error: expression cannot be evaluated	
		[0x2]	CXX0030: Error: expression cannot be evaluated	
-		yvec	0x0012e160 {xyz={...} a1d=0x0012e160 }	vec3d *
+		xyz	{x=0.00000000 y=-1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e160	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		xvec	0x0012e154 {xyz={...} a1d=0x0012e154 }	vec3d *
+		xyz	{x=0.00000000 y=0.00000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e154	float [3]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	-0.00000000	float
-		zvec	0x0012e16c {xyz={...} a1d=0x0012e16c }	vec3d *
+		xyz	{x=-0.00000000 y=-1.0000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e16c	float [3]
		[0x0]	-0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	-0.00000000	float


Locals up 2:

-		dom	0x0012e59c {vec={...} a2d=0x0012e59c a1d=0x0012e59c }	matrix *
-		vec	{rvec={...} uvec={...} fvec={...} }	matrix::<unnamed-tag>::<unnamed-type-vec>
-		rvec	{xyz={...} a1d=0x0012e59c }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e59c	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		uvec	{xyz={...} a1d=0x0012e5a8 }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e5a8	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		fvec	{xyz={...} a1d=0x0012e5b4 }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e5b4	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		a2d	0x0012e59c	float [3][3]
-		[0x0]	0x0012e59c	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		[0x1]	0x0012e5a8	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		[0x2]	0x0012e5b4	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		a1d	0x0012e59c	float [9]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
		[0x3]	-1.0737418e+008	float
		[0x4]	-1.0737418e+008	float
		[0x5]	-1.0737418e+008	float
		[0x6]	-1.0737418e+008	float
		[0x7]	-1.0737418e+008	float
		[0x8]	-1.0737418e+008	float
-		docker_p0	0x0012e55c {xyz={...} a1d=0x0012e55c }	vec3d *
+		xyz	{x=-0.10503700 y=9.3809032 z=57.084610 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e55c	float [3]
		[0x0]	-0.10503700	float
		[0x1]	9.3809032	float
		[0x2]	57.084610	float
-		docker_p1	0x0012e548 {xyz={...} a1d=0x0012e548 }	vec3d *
+		xyz	{x=-0.10503700 y=9.3809032 z=56.084610 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e548	float [3]
		[0x0]	-0.10503700	float
		[0x1]	9.3809032	float
		[0x2]	56.084610	float
-		docker_p0_norm	0x0012e534 {xyz={...} a1d=0x0012e534 }	vec3d *
+		xyz	{x=0.00000000 y=-1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e534	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		docker_orient	0x016ccab8 {vec={...} a2d=0x016ccab8 a1d=0x016ccab8 }	matrix *
-		vec	{rvec={...} uvec={...} fvec={...} }	matrix::<unnamed-tag>::<unnamed-type-vec>
-		rvec	{xyz={...} a1d=0x016ccab8 }	vec3d
+		xyz	{x=1.0000000 y=0.00000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x016ccab8	float [3]
		[0x0]	1.0000000	float
		[0x1]	0.00000000	float
		[0x2]	0.00000000	float
-		uvec	{xyz={...} a1d=0x016ccac4 }	vec3d
+		xyz	{x=0.00000000 y=1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x016ccac4	float [3]
		[0x0]	0.00000000	float
		[0x1]	1.0000000	float
		[0x2]	0.00000000	float
-		fvec	{xyz={...} a1d=0x016ccad0 }	vec3d
+		xyz	{x=0.00000000 y=0.00000000 z=1.0000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x016ccad0	float [3]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	1.0000000	float
-		a2d	0x016ccab8	float [3][3]
+		[0x0]	0x016ccab8	float [3]
+		[0x1]	0x016ccac4	float [3]
+		[0x2]	0x016ccad0	float [3]
-		a1d	0x016ccab8	float [9]
		[0x0]	1.0000000	float
		[0x1]	0.00000000	float
		[0x2]	0.00000000	float
		[0x3]	0.00000000	float
		[0x4]	1.0000000	float
		[0x5]	0.00000000	float
		[0x6]	0.00000000	float
		[0x7]	0.00000000	float
		[0x8]	1.0000000	float
-		dockee_p0	0x0012e520 {xyz={...} a1d=0x0012e520 }	vec3d *
+		xyz	{x=0.10000000 y=13.000000 z=55.599998 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e520	float [3]
		[0x0]	0.10000000	float
		[0x1]	13.000000	float
		[0x2]	55.599998	float
-		dockee_p1	0x0012e50c {xyz={...} a1d=0x0012e50c }	vec3d *
+		xyz	{x=0.10000000 y=12.750000 z=55.599998 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e50c	float [3]
		[0x0]	0.10000000	float
		[0x1]	12.750000	float
		[0x2]	55.599998	float
-		dockee_p0_norm	0x0012e4f8 {xyz={...} a1d=0x0012e4f8 }	vec3d *
+		xyz	{x=0.00000000 y=1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e4f8	float [3]
		[0x0]	0.00000000	float
		[0x1]	1.0000000	float
		[0x2]	0.00000000	float
-		dockee_orient	0x016cbfb4 {vec={...} a2d=0x016cbfb4 a1d=0x016cbfb4 }	matrix *
-		vec	{rvec={...} uvec={...} fvec={...} }	matrix::<unnamed-tag>::<unnamed-type-vec>
-		rvec	{xyz={...} a1d=0x016cbfb4 }	vec3d
+		xyz	{x=1.0000000 y=0.00000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x016cbfb4	float [3]
		[0x0]	1.0000000	float
		[0x1]	0.00000000	float
		[0x2]	0.00000000	float
-		uvec	{xyz={...} a1d=0x016cbfc0 }	vec3d
+		xyz	{x=0.00000000 y=1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x016cbfc0	float [3]
		[0x0]	0.00000000	float
		[0x1]	1.0000000	float
		[0x2]	0.00000000	float
-		fvec	{xyz={...} a1d=0x016cbfcc }	vec3d
+		xyz	{x=0.00000000 y=0.00000000 z=1.0000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x016cbfcc	float [3]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	1.0000000	float
-		a2d	0x016cbfb4	float [3][3]
-		[0x0]	0x016cbfb4	float [3]
		[0x0]	1.0000000	float
		[0x1]	0.00000000	float
		[0x2]	0.00000000	float
-		[0x1]	0x016cbfc0	float [3]
		[0x0]	0.00000000	float
		[0x1]	1.0000000	float
		[0x2]	0.00000000	float
-		[0x2]	0x016cbfcc	float [3]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	1.0000000	float
-		a1d	0x016cbfb4	float [9]
		[0x0]	1.0000000	float
		[0x1]	0.00000000	float
		[0x2]	0.00000000	float
		[0x3]	0.00000000	float
		[0x4]	1.0000000	float
		[0x5]	0.00000000	float
		[0x6]	0.00000000	float
		[0x7]	0.00000000	float
		[0x8]	1.0000000	float
-		fvec	{xyz={...} a1d=0x0012e1a8 }	vec3d
+		xyz	{x=-0.00000000 y=-1.0000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e1a8	float [3]
		[0x0]	-0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	-0.00000000	float
-		uvec	{xyz={...} a1d=0x0012e194 }	vec3d
+		xyz	{x=0.00000000 y=-1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e194	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		m2	{vec={...} a2d=0x0012e128 a1d=0x0012e128 }	matrix
-		vec	{rvec={...} uvec={...} fvec={...} }	matrix::<unnamed-tag>::<unnamed-type-vec>
-		rvec	{xyz={...} a1d=0x0012e128 }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e128	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		uvec	{xyz={...} a1d=0x0012e134 }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e134	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		fvec	{xyz={...} a1d=0x0012e140 }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e140	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		a2d	0x0012e128	float [3][3]
-		[0x0]	0x0012e128	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		[0x1]	0x0012e134	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		[0x2]	0x0012e140	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		a1d	0x0012e128	float [9]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
		[0x3]	-1.0737418e+008	float
		[0x4]	-1.0737418e+008	float
		[0x5]	-1.0737418e+008	float
		[0x6]	-1.0737418e+008	float
		[0x7]	-1.0737418e+008	float
		[0x8]	-1.0737418e+008	float
-		temp	{xyz={...} a1d=0x0012e180 }	vec3d
+		xyz	{x=0.00000000 y=-1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e180	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		m1	{vec={...} a2d=0x0012e154 a1d=0x0012e154 }	matrix
-		vec	{rvec={...} uvec={...} fvec={...} }	matrix::<unnamed-tag>::<unnamed-type-vec>
-		rvec	{xyz={...} a1d=0x0012e154 }	vec3d
+		xyz	{x=0.00000000 y=0.00000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e154	float [3]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	-0.00000000	float
-		uvec	{xyz={...} a1d=0x0012e160 }	vec3d
+		xyz	{x=0.00000000 y=-1.0000000 z=0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e160	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		fvec	{xyz={...} a1d=0x0012e16c }	vec3d
+		xyz	{x=-0.00000000 y=-1.0000000 z=-0.00000000 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e16c	float [3]
		[0x0]	-0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	-0.00000000	float
-		a2d	0x0012e154	float [3][3]
-		[0x0]	0x0012e154	float [3]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	-0.00000000	float
-		[0x1]	0x0012e160	float [3]
		[0x0]	0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	0.00000000	float
-		[0x2]	0x0012e16c	float [3]
		[0x0]	-0.00000000	float
		[0x1]	-1.0000000	float
		[0x2]	-0.00000000	float
-		a1d	0x0012e154	float [9]
		[0x0]	0.00000000	float
		[0x1]	0.00000000	float
		[0x2]	-0.00000000	float
		[0x3]	0.00000000	float
		[0x4]	-1.0000000	float
		[0x5]	0.00000000	float
		[0x6]	-0.00000000	float
		[0x7]	-1.0000000	float
		[0x8]	-0.00000000	float
-		m3	{vec={...} a2d=0x0012e0fc a1d=0x0012e0fc }	matrix
-		vec	{rvec={...} uvec={...} fvec={...} }	matrix::<unnamed-tag>::<unnamed-type-vec>
-		rvec	{xyz={...} a1d=0x0012e0fc }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e0fc	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		uvec	{xyz={...} a1d=0x0012e108 }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e108	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		fvec	{xyz={...} a1d=0x0012e114 }	vec3d
+		xyz	{x=-1.0737418e+008 y=-1.0737418e+008 z=-1.0737418e+008 }	vec3d::<unnamed-tag>::<unnamed-type-xyz>
-		a1d	0x0012e114	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		a2d	0x0012e0fc	float [3][3]
-		[0x0]	0x0012e0fc	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		[0x1]	0x0012e108	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		[0x2]	0x0012e114	float [3]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
-		a1d	0x0012e0fc	float [9]
		[0x0]	-1.0737418e+008	float
		[0x1]	-1.0737418e+008	float
		[0x2]	-1.0737418e+008	float
		[0x3]	-1.0737418e+008	float
		[0x4]	-1.0737418e+008	float
		[0x5]	-1.0737418e+008	float
		[0x6]	-1.0737418e+008	float
		[0x7]	-1.0737418e+008	float
		[0x8]	-1.0737418e+008	float
fred_dock_nulvec3d.txt (21,633 bytes)   

Goober5000

2012-07-04 06:22

administrator   ~0013814

Can you attach a model and a test mission which demonstrate the bug?

Goober5000

2012-10-19 05:53

administrator   ~0013989

Bump for model request.

MjnMixael

2012-11-19 23:06

manager  

fighter01.zip (81,069 bytes)

MjnMixael

2012-11-19 23:06

manager   ~0014091

Could not reproduce with this model. Dockpoints added as suggested.

FUBAR-BDHR

2012-11-20 01:31

developer   ~0014113

You forgot a - in front of one of the coordinates. Corrected here and crash confirmed.

http://fubar5.fubar.org/mantis/fighter01.pof

MjnMixael

2012-11-20 01:44

manager   ~0014115

Ok, FUBAR.. you really need to be more clear in your bug reports. Srsly.

The crash does not occur when adding a ship to the dock in FRED. The crash occurs when adding a ship to the dock, and then trying to run that mission in FSO.

There's this whole Steps to Reproduce section. Please use it.

FUBAR-BDHR

2012-11-20 02:02

developer   ~0014117

I get the crash in FRED. As soon as I set the ship as docked. Add one of these and a support ship and dock the 2 in FRED.

MjnMixael

2012-11-20 02:06

manager   ~0014118

I did that and couldn't get the crash. I had to run the mission in FSO before the nul vec would rear it's ugly head.

Valathil

2012-12-04 22:32

developer   ~0014292

The test model has docking slot positions that are on the same axis as the docking normal. This caused the null vector cause the vector between the two points and the normal are used to create a orientation matrix which is undefined in this case. No code will be changed to fix it but a Warning has been committed to trunk @ 9395. Closing this bug as asset issue.

FUBAR-BDHR

2012-12-05 00:14

developer   ~0014294

I know it's an asset issue and it states that the coordinates were wrong. The point is nothing fed to the engine should ever return a null vec3d. The data needs to be verified before the call to prevent this situation from ever happening. I was specifically told to file this (and all other null vec3d errors I encounter) for that reason.

Valathil

2012-12-05 00:32

developer   ~0014295

I give up do whatever you want i cant pull a magically right vector out of my ass. Theres a warning now so whatever i dont care anymore.

MjnMixael

2012-12-05 00:35

manager   ~0014296

The question then becomes.. what do YOU expect this to do, FUBAR? You admitted it's bad data. Valathil added a warning, what more do you want?

FUBAR-BDHR

2012-12-05 00:47

developer   ~0014297

The null vec3d call itself needs to validate data. Several of these issues have already been fixed by Wanderer who wrote a safe function for handling such issues. Others are handled differently. Closing the ticket means that it's not an issue and will not be addressed. If it is addressed and the null vec3d data is prevented before the call for all occasions not just 2 points on the same axis then fine it can be marked resolved. If the call is not being done with valid data then you end up with this situation again where someone has to trace out the call stack and find out why.

Goober5000

2012-12-05 03:54

administrator   ~0014299

In all cases, the Warning will be triggered before any null vector error occurs. If the code runs warning-free, then there should be no problems.

Nevertheless, I added some code to manipulate the data enough to avoid triggering the crash if the player proceeds past the warnings.

Closing.

Issue History

Date Modified Username Field Change
2010-11-27 04:05 FUBAR-BDHR New Issue
2010-11-27 04:05 FUBAR-BDHR File Added: fred_dock_nulvec3d.txt
2012-07-03 05:18 Goober5000 Assigned To => Goober5000
2012-07-03 05:18 Goober5000 Status new => assigned
2012-07-04 06:22 Goober5000 Note Added: 0013814
2012-10-19 05:53 Goober5000 Note Added: 0013989
2012-11-19 23:06 MjnMixael File Added: fighter01.zip
2012-11-19 23:06 MjnMixael Note Added: 0014091
2012-11-20 01:31 FUBAR-BDHR Note Added: 0014113
2012-11-20 01:44 MjnMixael Note Added: 0014115
2012-11-20 02:02 FUBAR-BDHR Note Added: 0014117
2012-11-20 02:06 MjnMixael Note Added: 0014118
2012-12-04 22:32 Valathil Note Added: 0014292
2012-12-04 22:32 Valathil Status assigned => closed
2012-12-04 22:32 Valathil Resolution open => fixed
2012-12-05 00:14 FUBAR-BDHR Note Added: 0014294
2012-12-05 00:14 FUBAR-BDHR Status closed => feedback
2012-12-05 00:14 FUBAR-BDHR Resolution fixed => reopened
2012-12-05 00:32 Valathil Note Added: 0014295
2012-12-05 00:35 MjnMixael Note Added: 0014296
2012-12-05 00:47 FUBAR-BDHR Note Added: 0014297
2012-12-05 00:47 FUBAR-BDHR Status feedback => assigned
2012-12-05 03:54 Goober5000 Note Added: 0014299
2012-12-05 03:54 Goober5000 Assigned To Goober5000 => Valathil
2012-12-05 03:54 Goober5000 Status assigned => closed
2012-12-05 03:54 Goober5000 Resolution reopened => no change required