-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crashes happening 2-10 time a day. #33
Comments
Ok so every crash has the same code '0xc0000005'. Which is an access violation error. Not that this is super helpful because people say it could be anything from faulty hardware to a opengl buffer access error. Putting this discussion here for reference. I will keep digging. I'm not sure how easy this will be to find. The fact that it happens periodically make me suspicious that it's a hardware issue. |
Agh nice find @freesig ! I think we dont actually need to have that ofHideCursor call as it's impossible for them to touch off the screen into the projection window anyway. We should probably just take it out. |
I think this access violation is because of the lack of support for opengl on amazon but because the crashes are so similar it definitely provides a clue. Todo
|
There was no crash overnight. Julien said it happens more when people are interacting with the touch screen. This might be a clue as it could be something to do with the changes to mouse adjustments. However it could just be a result of interaction. For example adding shapes. Todo
|
Heres a fake touch generator I'll add in tonight:
ofApp.h:95
If this doesn't work I will try this |
New version of fake touch that actually triggers clicks. for(int i = 0; i < 30; i++){
FakeTouch ft = {
FakeDirection::CANCEL,
i,
0,
0,
0,
0,
std::chrono::system_clock::now(),
};
fake_touches.push_back(ft);
} ofEvents.cpp:208 float ofCoreEvents::myRandom(float max) {
return (max * rand() / float(RAND_MAX)) * (1.0f - std::numeric_limits<float>::epsilon());
}
void ofCoreEvents::fake_touch() {
auto create_ft = [this] (FakeTouch & ft) {
ft.my_id = int(1 + myRandom(1000));
ft.last_direction = FakeDirection::CANCEL;
ft.x = int(1920 * myRandom(1.0));
ft.y = int(1080 * myRandom(1.0));
ft.dx = int(10 * myRandom(1.0));
ft.dy = int(10 * myRandom(1.0));
};
for (auto & ft : fake_touches) {
if( std::chrono::duration_cast<std::chrono::milliseconds>( std::chrono::system_clock::now() - ft.last_time).count() < 300 + int(300 * myRandom(1.0))){
continue;
}
FakeDirection touch_type;
bool choice = (myRandom(1.0) > 0.5) ? true : false;
bool click = (myRandom(1.0) > 0.3) ? true : false;
int id = ft.my_id;
switch (ft.last_direction) {
case FakeDirection::DOWN: {
touch_type = (click) ? FakeDirection::MOVE : (choice) ?
FakeDirection::MOVE : FakeDirection::DOWN;
}
break;
case FakeDirection::UP:
touch_type = FakeDirection::DOWN;
create_ft(ft);
break;
case FakeDirection::MOVE:
touch_type = (click) ? FakeDirection::UP : (choice) ?
FakeDirection::UP : FakeDirection::MOVE;
break;
default:
touch_type = FakeDirection::DOWN;
create_ft(ft);
break;
}
int x = ft.x;
int y = ft.y;
if (!click) {
x += ft.dx;
y += ft.dx;
}
ofTouchEventArgs touch(ofTouchEventArgs::cancel, x, y, id);
ofMouseEventArgs mouse(ofMouseEventArgs::Pressed, x, y, OF_MOUSE_BUTTON_LEFT);
switch (touch_type) {
case FakeDirection::DOWN:
mouse.type = ofMouseEventArgs::Pressed;
touch.type = ofTouchEventArgs::down;
notifyMouseEvent(mouse);
ofNotifyEvent( touchDown, touch);
break;
case FakeDirection::UP:
mouse.type = ofMouseEventArgs::Released;
touch.type = ofTouchEventArgs::up;
notifyMouseEvent(mouse);
ofNotifyEvent( touchUp, touch);
break;
case FakeDirection::MOVE:
mouse.type = ofMouseEventArgs::Moved;
touch.type = ofTouchEventArgs::move;
notifyMouseEvent(mouse);
ofNotifyEvent( touchMoved, touch);
break;
default:
mouse.type = ofMouseEventArgs::Pressed;
touch.type = ofTouchEventArgs::down;
notifyMouseEvent(mouse);
ofNotifyEvent( touchDown, touch);
break;
}
ft.my_id = id;
ft.last_direction = touch_type;
ft.x = x;
ft.y = y;
ft.last_time = std::chrono::system_clock::now();
}
} ofEvents.cpp:303 fake_touch(); ofEvents.h:199 enum class FakeDirection { UP, DOWN, MOVE, CANCEL };
struct FakeTouch {
FakeDirection last_direction;
int my_id;
int x;
int y;
int dx;
int dy;
std::chrono::time_point<std::chrono::system_clock> last_time;
}; ofEvents.h:290 // Touch testing
void fake_touch();
vector<FakeTouch> fake_touches;
float myRandom(float max);
int count_fakes = 0; Todo
|
I got a crash last night. It came from here |
Yep this is the cause. Sending anything to 9002 that's not formatted correctly crashes the program |
ip/posix/UdpSocket.cpp:546 if( data ) {
std::cerr << "Bad packet: " << data << std::endl;
delete [] data;
}
//throw; ip/win32/UdpSocket.cpp:474 try{
socketListeners_[i].first->ProcessPacket( data, (int)size, remoteEndpoint );
}catch(...){
if(data){
std::cerr << "Bad packet: " << data << std::endl;
}
} |
Apparently they are still getting crashes. The log I saw showed about 3 crashes per day but no print out from the error message that I put in there. So it must be something else. I'll run another test and see if we can find another crash. |
Assembly: This is the output. I'm not sure if they are related. Also not sure why a Teamviewer dll is involved. Might just be because that was the "screen" I was viewing it through. |
Arturo in this issue seems to think this is a Visual Studio 2015 problem. "visual studio does this anoying thing where the debugger stops on any I wonder if there is a way to tell Visual Studio to ignore all Exceptions....? |
This article shows how to enable and disable certain types of exceptions in Visual Studio. I might see if I can reproduce this crash using team viewer first. Then I'll un tick the 0xC0000005 Exception and see if it somehow stops VS from panicking when this exception occurs. |
It seems that the following dll's are causing the PM software to crash multiple times a day.
nvoglv64.dll
ucrtbase.dll
nvxdplcy.dll
UCRTBASE.DLL
People have reported fixing this dll crashing once they have uninstalled Nvidia "hd audio driver". Would be worth checking if this is indeed installed on the system.
NVXDPLCY.DLL
This is a Dell resource media dll. Need to look more into why this driver is causing crashes.
NVOGLV64.DLL
This is an Nvidia driver, might need updating?
The text was updated successfully, but these errors were encountered: