I have issue with breakpoint in latest Visual Studio. The do not bind even with simplest code:
#include "stdafx.h"
int main()
{
int ololo = 0;
return 0;
}
Breakpoint is set on line:
int ololo = 0;
I tried to look over internet what is wrong, but honestly couldn't find any answer which would match my case, people cases were usually more complicated than this.
EDIT: New Source:
#include "stdafx.h"
#include <iostream>
volatile int TestGlobal;
void Foo()
{
TestGlobal = 289173;
int test = 90823;
}
int main()
{
Foo();
int notworking = 0;
int in = 23;
std::cin >> in;
return 0;
}
Generated ASM:
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.00.23506.0
include listing.inc
INCLUDELIB MSVCRTD
INCLUDELIB OLDNAMES
PUBLIC ?TestGlobal@@3HC ; TestGlobal
_BSS SEGMENT
?TestGlobal@@3HC DD 01H DUP (?) ; TestGlobal
_BSS ENDS
PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete
PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete
PUBLIC ?Foo@@YAXXZ ; Foo
PUBLIC main
EXTRN __imp_??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z:PROC
EXTRN _RTC_CheckStackVars:PROC
EXTRN _RTC_InitBase:PROC
EXTRN _RTC_Shutdown:PROC
EXTRN __imp_?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A:BYTE
; COMDAT pdata
pdata SEGMENT
$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3
DD imagerel $LN3+50
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3
DD imagerel $LN3+55
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?Foo@@YAXXZ DD imagerel $LN3
DD imagerel $LN3+55
DD imagerel $unwind$?Foo@@YAXXZ
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$main DD imagerel $LN3
DD imagerel $LN3+98
DD imagerel $unwind$main
pdata ENDS
; COMDAT rtc$TMZ
rtc$TMZ SEGMENT
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
rtc$TMZ ENDS
; COMDAT rtc$IMZ
rtc$IMZ SEGMENT
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
rtc$IMZ ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$main DD 025051e01H
DD 010a230fH
DD 070030025H
DD 05002H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
main$rtcName$0 DB 069H
DB 06eH
DB 00H
ORG $+13
main$rtcVarDesc DD 044H
DD 04H
DQ FLAT:main$rtcName$0
ORG $+48
main$rtcFrameData DD 01H
DD 00H
DQ FLAT:main$rtcVarDesc
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?Foo@@YAXXZ DD 05051c01H
DD 010a030dH
DD 07003001dH
DD 05002H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 05052d01H
DD 01130316H
DD 0700c0019H
DD 0500bH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX@Z DD 05052801H
DD 010e0311H
DD 070070019H
DD 05006H
xdata ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File c:\users\lukasz\documents\visual studio 2015\projects\breakpointtest\breakpointtest\breakpointtest.cpp
; COMDAT main
_TEXT SEGMENT
notworking$ = 4
in$ = 36
main PROC ; COMDAT
; 15 : {
$LN3:
push rbp
push rdi
sub rsp, 296 ; 00000128H
lea rbp, QWORD PTR [rsp+32]
mov rdi, rsp
mov ecx, 74 ; 0000004aH
mov eax, -858993460 ; ccccccccH
rep stosd
; 16 : Foo();
call ?Foo@@YAXXZ ; Foo
; 17 : int notworking = 0;
mov DWORD PTR notworking$[rbp], 0
; 18 : int in = 23;
mov DWORD PTR in$[rbp], 23
; 19 : std::cin >> in;
lea rdx, QWORD PTR in$[rbp]
mov rcx, QWORD PTR __imp_?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A
call QWORD PTR __imp_??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z
; 20 : return 0;
xor eax, eax
; 21 : }
mov edi, eax
lea rcx, QWORD PTR [rbp-32]
lea rdx, OFFSET FLAT:main$rtcFrameData
call _RTC_CheckStackVars
mov eax, edi
lea rsp, QWORD PTR [rbp+264]
pop rdi
pop rbp
ret 0
main ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File c:\users\lukasz\documents\visual studio 2015\projects\breakpointtest\breakpointtest\breakpointtest.cpp
; COMDAT ?Foo@@YAXXZ
_TEXT SEGMENT
test$ = 4
?Foo@@YAXXZ PROC ; Foo, COMDAT
; 10 : {
$LN3:
push rbp
push rdi
sub rsp, 232 ; 000000e8H
mov rbp, rsp
mov rdi, rsp
mov ecx, 58 ; 0000003aH
mov eax, -858993460 ; ccccccccH
rep stosd
; 11 : TestGlobal = 289173;
mov DWORD PTR ?TestGlobal@@3HC, 289173 ; TestGlobal, 00046995H
; 12 : int test = 90823;
mov DWORD PTR test$[rbp], 90823 ; 000162c7H
; 13 : }
lea rsp, QWORD PTR [rbp+232]
pop rdi
pop rbp
ret 0
?Foo@@YAXXZ ENDP ; Foo
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File c:\users\lukasz\documents\visual studio 2015\projects\breakpointtest\breakpointtest\breakpointtest.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z
_TEXT SEGMENT
__formal$ = 224
__formal$ = 232
?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT
$LN3:
mov QWORD PTR [rsp+16], rdx
mov QWORD PTR [rsp+8], rcx
push rbp
push rdi
sub rsp, 200 ; 000000c8H
mov rbp, rsp
mov rdi, rsp
mov ecx, 50 ; 00000032H
mov eax, -858993460 ; ccccccccH
rep stosd
mov rcx, QWORD PTR [rsp+232]
lea rsp, QWORD PTR [rbp+200]
pop rdi
pop rbp
ret 0
?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File c:\users\lukasz\documents\visual studio 2015\projects\breakpointtest\breakpointtest\breakpointtest.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX@Z
_TEXT SEGMENT
__formal$ = 224
?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT
$LN3:
mov QWORD PTR [rsp+8], rcx
push rbp
push rdi
sub rsp, 200 ; 000000c8H
mov rbp, rsp
mov rdi, rsp
mov ecx, 50 ; 00000032H
mov eax, -858993460 ; ccccccccH
rep stosd
mov rcx, QWORD PTR [rsp+232]
lea rsp, QWORD PTR [rbp+200]
pop rdi
pop rbp
ret 0
?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete
_TEXT ENDS
END