skmp / reicast-emulator

Reicast was a multiplatform Sega Dreamcast emulator
https://reicast.emudev.org
Other
1.1k stars 344 forks source link

Improved debugging tools (android, linux) #70

Open MrPsyMan opened 10 years ago

MrPsyMan commented 10 years ago

Debugging on Android is almost impossible right now. The google tooling is very minimal, and debugging the JIT is pretty much differential debugging and guesswork. On the linux side of things, it is slightly better (at least gdb works reliably, but very slowly on asm view).

This is a combination of the project being big and complex, of us not having internal debug tools, and of the android platform being over complicated and not that well supported.

Short term solutions

Missing tooling

Other issues

A recent example is the Shenmue crashbug (#62), which even after spending a LOT of time debugging still remains a mystery, and only appears on armrec (even with minrec config).

Any suggestions to make the situation better are welcome.

post refactored by drk

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/31269181-improved-debugging-tools-android-linux?utm_campaign=plugin&utm_content=tracker%2F500311&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F500311&utm_medium=issues&utm_source=github).
stodag commented 10 years ago

How does ppsspp handle this? That's a large project on Android so must be a simple way to stay on top. (well not simple, nothing is but you know what I mean).

Sry for buttin in.

skmp commented 10 years ago

Actually, linux is not as bad as android. Android is mostly guessing :/

MrPsyMan commented 10 years ago

Mostly? It works by magic!

As for the psp emu, when you have the option of an open set of tests (pspautotests) with the ability to see exactly how they work, use HLE and have over 100 contributors, debugging becomes far more efficient.

Note that this is about efficiency. Debugging is still possible and all kinds of issues can at least be tracked given enough time. But over here, free time is quite limited as things are.

skmp commented 10 years ago

Oh stop moaning :p. Also, post updated to be less ranty.

MrPsyMan commented 10 years ago

Fine. Just let me know whenever you feel like flipping the table. :p

stodag commented 10 years ago

Obviously as the emu grows and time passes more and more contributes will get on board.. making things easier for you guys.

I can test for you on different devices whenever you need, I have 4 android devices.. 2 I use my brother uses 1 and one gathering dust which I do use from time to time (videos, music etc).

If you ever need me to test, shoot me an email.. Stodag2@gmail.com.. that's the only way I can contribute.. Great work guys.

skmp commented 10 years ago

The issue is not the amount of people involved, is the inability to do work efficiently with the current tooling. Spending 10+ hours fighting with the tools and getting nothing done -> (╯°□°)╯︵ ┻━┻ feeling. The fact that more people might help doesn't fix the furstration.

MrPsyMan commented 10 years ago

I suppose we could do some internal tools for use on a real Dreamcast in order to trace for proper behavior. But really, both DCs here are broken, and you're rarely home drk.

On the other hand, those 10 hours and the tenths of hours before those could have been used to make a test suit that makes our life easier. If only we decided to do that sooner... Now, where's my time machine?

mrcmunir commented 10 years ago

I would like to give more but do not have much time and I'm on exams

I have some android devices Samsung galaxy tab 2 10.1 "-> Maybe in future upgrade to Android 4.4 Cyanomodgen Samsung Galaxy s3 -> Android 4.3 Lenovo S6000-F -> Android 4.2 Console Yinlips chinese Cortes A9 800mhz with Mali400 (one core) -> Android 2.2 In Future maybe i buy ODROID-X or ODROID-u3 for by support and testing on linux version.

Also I have Dreamcast for testing :[

Good job

AbandonedCart commented 10 years ago

This is handled for Android. Linux will most likely need its own implementation.

The Submit Error Logs button in Settings will take a log, save it to the Emulator's home directory, open up the browser to the issues page, and allow pasting the log with the issue.

The log covers any system crashes, any application errors, the newdc and reidc log output, and the general specs of the device it is being run from.

AbandonedCart commented 6 years ago

Is there still anything required for this? Cannot verify Linux, but Android has a very effective method for debugging.