Memory access violation and unhandled exception in cpfe.dll while editing C++ source code with Visual Studio 2012 - by Roman Ryltsov

Status : 

 


4
0
Sign in
to vote
ID 758436 Comments
Status Active Workarounds
Type Bug Repros 1
Opened 8/16/2012 11:38:44 PM
Access Restriction Public

Description

The issue occurs in a similar way it did with VS 2010. I am using VS 2012 RTM, C++ project, using PlatformToolset v100.

I was editing source code when the crash popup came up:

Unhandled exception at 0x3d731716 (cpfe.dll) in vcpkgsrv.exe: 0xC0000005: Access violation reading location 0x464646c1.

Call stack of the failing process is quoted below and I have minidump saved.

>	cpfe.dll!edge::intellisense_operation::get_auto_complete_members() + 1014 bytes	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for cpfe.dll]	
 	cpfe.dll!edge::scoped_query_manager::get_trees_overlapping_span() + 5043 bytes	Unknown
 	cpfe.dll!3d651166()	Unknown
 	vcpkgsrv.exe!0040692c()	Unknown
 	vcpkgsrv.exe!00406817()	Unknown
 	rpcrt4.dll!NdrServerInitialize() + 576 bytes	Unknown
 	rpcrt4.dll!NdrStubCall2() + 598 bytes	Unknown
Sign in to post a comment.
Posted by Deon [MSFT] on 4/29/2014 at 12:32 PM
Thank you for reporting this issue. This issue has been fixed in Visual Studio 2013. You can install a trial version of Visual Studio 2013 with the fix from: http://go.microsoft.com/?linkid=9832436
Posted by Jamie [MSFT] on 4/4/2013 at 4:48 PM
Thank you for reporting this. We've fixed the issue internally and the fix should be available in the next major release.

Jamie Eckman
Visual C++ Team
Posted by Roman Ryltsov on 10/13/2012 at 12:37 AM
Another one in vcpkgsrv-20121013.7z

>    cpfe.dll!_class_qualified_id_lookup()    Unknown
    cpfe.dll!_shift_left_integer_value()    Unknown
    cpfe.dll!_shift_left_integer_value()    Unknown
    cpfe.dll!_do_operand_transformations()    Unknown
    cpfe.dll!_check_closing_paren_after_expr_list()    Unknown
    cpfe.dll!_scan_array_mem_initializer()    Unknown
    cpfe.dll!___isa_available_init()    Unknown
    cpfe.dll!_scan_return_expression()    Unknown
    cpfe.dll!_scan_return_expression()    Unknown
    cpfe.dll!_compound_statement()    Unknown
    cpfe.dll!_compound_statement()    Unknown
    cpfe.dll!_scan_function_body()    Unknown
    cpfe.dll!_default_argument_fixup_for_class()    Unknown
    cpfe.dll!_process_deferred_class_fixups_and_instantiations()    Unknown
    cpfe.dll!_process_curr_construct_pragmas()    Unknown
    cpfe.dll!_decl_specifiers()    Unknown
    cpfe.dll!_scan_nonmember_declaration()    Unknown
    cpfe.dll!_declaration()    Unknown
    cpfe.dll!a_scout_store::pre_parse_required(void)    Unknown
    cpfe.dll!a_performance_counter::stop_timer(void)    Unknown
    cpfe.dll!_end_of_parse_notification()    Unknown
    cpfe.dll!_process_translation_unit()    Unknown
    cpfe.dll!_edg_main()    Unknown
    cpfe.dll!_edg_main()    Unknown
    cpfe.dll!_InvokeCompilerPassW@16()    Unknown
    cpfe.dll!edge_compiler_main(int,unsigned short const * * const)    Unknown
    cpfe.dll!scout_parse(int,unsigned short const * *,class a_scout_parser_interface &,bool)    Unknown
    cpfe.dll!scout_parse(int,unsigned short const * *,class a_scout_parser_interface &,bool)    Unknown
    cpfe.dll!a_compiler_thread::compiler_thread_routine(void *)    Unknown
    kernel32.dll!@BaseThreadInitThunk@12()    Unknown
    ntdll.dll!___RtlUserThreadStart@8()    Unknown
    ntdll.dll!__RtlUserThreadStart@8()    Unknown
Posted by Roman Ryltsov on 9/30/2012 at 3:19 AM
Another one in vcpkgsrv-20120930-1.7z

>    cpfe.dll!_class_qualified_id_lookup()    Unknown
    cpfe.dll!_shift_left_integer_value()    Unknown
    cpfe.dll!_shift_left_integer_value()    Unknown
    cpfe.dll!_do_operand_transformations()    Unknown
    cpfe.dll!_begin_potential_pack_expansion_context()    Unknown
    cpfe.dll!_free_list_of_namespace_list_entries()    Unknown
    cpfe.dll!_record_operator_position_in_expr_rescan_info()    Unknown
    cpfe.dll!_do_operand_transformations()    Unknown
    cpfe.dll!_scan_return_expression()    Unknown
    cpfe.dll!_scan_return_expression()    Unknown
    cpfe.dll!_compound_statement()    Unknown
    cpfe.dll!_compound_statement()    Unknown
    cpfe.dll!_scan_function_body()    Unknown
    cpfe.dll!_default_argument_fixup_for_class()    Unknown
    cpfe.dll!_process_deferred_class_fixups_and_instantiations()    Unknown
    cpfe.dll!_process_curr_construct_pragmas()    Unknown
    cpfe.dll!_decl_specifiers()    Unknown
    cpfe.dll!_scan_nonmember_declaration()    Unknown
    cpfe.dll!_declaration()    Unknown
    cpfe.dll!a_scout_store::pre_parse_required(void)    Unknown
    cpfe.dll!a_performance_counter::stop_timer(void)    Unknown
    cpfe.dll!_end_of_parse_notification()    Unknown
    cpfe.dll!_process_translation_unit()    Unknown
    cpfe.dll!_edg_main()    Unknown
    cpfe.dll!_edg_main()    Unknown
    cpfe.dll!_InvokeCompilerPassW@16()    Unknown
    cpfe.dll!edge_compiler_main(int,unsigned short const * * const)    Unknown
    cpfe.dll!scout_parse(int,unsigned short const * *,class a_scout_parser_interface &,bool)    Unknown
    cpfe.dll!scout_parse(int,unsigned short const * *,class a_scout_parser_interface &,bool)    Unknown
    cpfe.dll!a_compiler_thread::compiler_thread_routine(void *)    Unknown
    kernel32.dll!@BaseThreadInitThunk@12()    Unknown
    ntdll.dll!___RtlUserThreadStart@8()    Unknown
    ntdll.dll!__RtlUserThreadStart@8()    Unknown
Posted by Roman Ryltsov on 9/24/2012 at 2:23 PM
FYI the last one vcpkgsrv-20120924-2.7z was a stack overflow 0xC00000FD unhandled exception.
Posted by Roman Ryltsov on 9/24/2012 at 1:43 PM
Hey, another crash dump just uploaded vcpkgsrv-20120924-2.7z
Posted by Roman Ryltsov on 9/24/2012 at 6:33 AM
Another similar crash, same modules - different symbols

>    cpfe.dll!3d72185f()    Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for cpfe.dll]    
    cpfe.dll!3d725658()    Unknown
    cpfe.dll!_InvokeCompilerPassW@16() + 3769 bytes    Unknown
    cpfe.dll!edge::translation_unit::translation_unit() + 236 bytes    Unknown
    cpfe.dll!edge::translation_unit::translation_unit() + 283 bytes    Unknown
    cpfe.dll!edge::file_buffer::close() + 5594 bytes    Unknown
    ole32.dll!CObjectContext::InternalAddRef(void)    Unknown
    ole32.dll!InitThreadCtx(class CObjectContext * &,class CComApartment * &,class COleTls &,int,enum tagAPTKIND)    Unknown
    ole32.dll!wCoInitializeEx(class COleTls &,unsigned long)    Unknown
    ffffffff()    Unknown
    kernel32.dll!@BaseThreadInitThunk@12()    Unknown
    ntdll.dll!___RtlUserThreadStart@8()    Unknown
    ntdll.dll!__RtlUserThreadStart@8()    Unknown

I am uploading another dump vcpkgsrv-20120924.zip
Posted by Microsoft on 9/5/2012 at 6:18 PM
Thank you for submitting feedback on Visual Studio 11 and .NET Framework. Your issue has been routed to the appropriate VS development team for review. We will contact you if we require any additional information.
Posted by Roman Ryltsov on 8/17/2012 at 1:24 AM
The minidump is already attached to the feedback item.
Posted by Microsoft on 8/17/2012 at 1:18 AM
Thanks for reporting the issue.
In order to fix the issue, we must first reproduce the issue in our labs. We are unable to reproduce the issue with the steps you provided.

It may help if you provide us with a mini dump file and call stack. You can use the following steps to get a mini dump file:
1. Start Visual Studio.
2. Start another instance of VS.
3. In the second instance click Tools | Attach to Process...
4. In the list of processes locate devenv.exe.
5. Click Select... and explicitly choose 'Native' and 'Managed' code.
6. Click OK and OK to close Select dialog and Attach to Process dialog.
7. Go back to the first instance of VS and repro the crash hang.
8. Upon the crash or hang, control should go to the second instance of VS.
9. In the second instance click Debug | Save Dump As Minidump with heap.

If you are running the VB profile you will not see the Save Dump As menu item. To add this menu item:
a. Select Tools -> Customize
b. Select the Commands tab
c. Select Debug from the Menu bar dropdown
d. Click Add Command...
e. Select Debug from the Categories list.
f. Find the Save Dump As entry in the Commands window.
g. Click OK (the Save Dump As... command is added to the top of the Debug menu).
h. Click Close

You can get detailed steps about how to get the dump file and call stack at http://blogs.msdn.com/debugger/archive/2009/12/30/what-is-a-dump-and-how-do-i-create-one.aspx

You can upload the file with the Visual Studio 12 Feedback tool. You can get detailed steps about how to use Visual Studio 12 Feedback tool at http://visualstudiogallery.msdn.microsoft.com/f8a5aac8-0418-4f88-9d34-bdbe2c4cfe72

It would be greatly appreciated if you could provide us with that information as quickly as possible.

Thanks again for your efforts and we look forward to hear from you.
Posted by Microsoft on 8/16/2012 at 11:50 PM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)