Bartosz Taudul
22346feea3
Fun fact: two threads can crash at the same time.
2018-08-21 01:45:33 +02:00
Bartosz Taudul
47943d6a86
Use proper type.
2018-08-21 01:24:00 +02:00
Bartosz Taudul
facb05f8cb
Don't mark FastVector element as used until it's ready.
...
This should prevent a race condition that would result in invalid last
element of the queue, in case a freezed thread already got the queue
item, but didn't wrote to it (or didn't wrote fully).
2018-08-20 22:35:50 +02:00
Bartosz Taudul
8c0ff67796
Cut windows crash call stack at the exception dispatcher.
2018-08-20 22:21:35 +02:00
Bartosz Taudul
d1adf9e8d6
Allow skipping functions on top of call stack.
...
Note that this is on-client performance intensive and shouldn't be used,
except in special situations, like processing crashes.
2018-08-20 22:20:44 +02:00
Bartosz Taudul
b371003336
In case of manual shutdown, don't wait for lock.
...
All threads are freezed at this point, nothing will release it.
2018-08-20 21:49:23 +02:00
Bartosz Taudul
401ebd6f3d
Use spin-lock in DequeueSerial.
...
A thread freezed during crash processing may hold the lock and never
release it. The old behavior would cause deadlock in such situation. The
new one can be modified to work. Also, we don't want to use timed mutex.
2018-08-20 21:40:13 +02:00
Bartosz Taudul
afee61a2cf
Use standard naming for try_lock() in NonRecursiveBenaphore.
2018-08-20 21:37:55 +02:00
Bartosz Taudul
def6c674b2
Add crash notification to thread tooltip.
2018-08-20 14:37:14 +02:00
Bartosz Taudul
6d45434cb5
Implement crash handler on Linux.
2018-08-20 14:30:56 +02:00
Bartosz Taudul
53aee0e03d
Fix warning.
2018-08-20 12:53:14 +02:00
Bartosz Taudul
ebcdebaa69
Display crash marker on timeline.
2018-08-20 03:00:45 +02:00
Bartosz Taudul
5fa4cf6e5d
Display crash information on visible threads lists.
2018-08-20 02:41:11 +02:00
Bartosz Taudul
b1227cf9fd
Display crashed thread in red color.
2018-08-20 02:36:58 +02:00
Bartosz Taudul
99b7a39c52
Save/load crash information.
2018-08-20 02:27:24 +02:00
Bartosz Taudul
619fba41ab
Display crash information in info window.
2018-08-20 02:23:55 +02:00
Bartosz Taudul
2a696418cd
Cosmetics.
2018-08-20 02:23:55 +02:00
Bartosz Taudul
3b526b074e
Send crash report.
2018-08-20 02:23:55 +02:00
Bartosz Taudul
49e36c013f
Only handle selected subset of exceptions.
2018-08-20 02:06:59 +02:00
Bartosz Taudul
b56a33add1
Update NEWS.
2018-08-20 01:09:11 +02:00
Bartosz Taudul
0258f4a7b4
Handle crashes on windows.
...
When a crash happens, put all threads (bar the profiler and crash
handling ones) into the freezer, send crash notification message,
request profiler shutdown and when it does, terminate process.
The list of ignored exceptions is sorta-kinda random at the moment and
may need further expansion.
2018-08-20 01:07:33 +02:00
Bartosz Taudul
366ea35593
Allow crash event reporting.
...
When crash happens there's no longer anything to profile -- don't wait
for unfinished zones to finish before sending client terminate
confirmation.
2018-08-20 01:03:16 +02:00
Bartosz Taudul
ca939ccd19
Allow external profiler shutdown requests.
2018-08-20 01:02:27 +02:00
Bartosz Taudul
9650162cda
Update NEWS.
2018-08-19 22:24:28 +02:00
Bartosz Taudul
aefa2a9573
Display dialog when CPU doesn't support AVX/AVX2.
2018-08-19 22:20:54 +02:00
Bartosz Taudul
7fc1729f3b
Reduce required instruction set to SSE2 in winmain.cpp.
2018-08-19 22:20:54 +02:00
Bartosz Taudul
ddf889e8bc
Move WinMain entry point to a separate source file.
2018-08-19 22:20:54 +02:00
Bartosz Taudul
d63b5431bf
Discover linux kernel version.
2018-08-19 19:00:01 +02:00
Bartosz Taudul
f55b99ba7e
Fix signed/unsigned.
2018-08-19 18:53:32 +02:00
Bartosz Taudul
e9170c862e
System RAM discovery on Linux.
2018-08-19 18:52:04 +02:00
Bartosz Taudul
790a3ae26f
Perform windows version discovery.
2018-08-19 18:43:26 +02:00
Bartosz Taudul
66c839b557
Update NEWS.
2018-08-19 18:29:39 +02:00
Bartosz Taudul
e0a4b9c56a
Save/load host info.
2018-08-19 18:28:48 +02:00
Bartosz Taudul
71bfd15d9e
Display host info.
2018-08-19 18:24:43 +02:00
Bartosz Taudul
203d9b4b85
Store host info.
2018-08-19 18:21:56 +02:00
Bartosz Taudul
bd76f4cd10
Send host info in welcome message.
2018-08-19 18:19:12 +02:00
Bartosz Taudul
9c0e6620b3
Host info discovery.
2018-08-19 18:15:46 +02:00
Bartosz Taudul
716166bc3a
Expose InitWinSock().
2018-08-19 18:15:46 +02:00
Bartosz Taudul
6224daf9c9
Greatly simplify call stack tree calculation.
...
Instead of caching paths, compute accumulated cost of each path and only
then create the tree, going through each path just once.
2018-08-19 16:34:26 +02:00
Bartosz Taudul
e1821e439a
Add icons to error pop-ups.
2018-08-19 02:59:12 +02:00
Bartosz Taudul
2313e6b845
Add chapter on capturing the data to the manual.
2018-08-18 22:29:26 +02:00
Bartosz Taudul
cb51fdec20
Fix multiple file name retrievals in a row.
2018-08-18 20:38:14 +02:00
Bartosz Taudul
42636cfe89
Allow viewing source files from within find zone menu.
2018-08-18 20:35:25 +02:00
Bartosz Taudul
0dbd58c038
Don't change mouse cursor over ImGuiColorTextEdit window.
2018-08-18 20:13:02 +02:00
Bartosz Taudul
2445cc72bc
Add icons to memory menu.
2018-08-18 20:10:14 +02:00
Bartosz Taudul
235da1eded
Use focused text for source locations count.
2018-08-18 20:01:57 +02:00
Bartosz Taudul
4060a59b4f
Call stack tree nodes that have no siblings are expanded by default.
2018-08-18 20:00:24 +02:00
Bartosz Taudul
145949968e
Update NEWS.
2018-08-18 19:58:09 +02:00
Bartosz Taudul
a4df805746
Allow filtering messages by thread.
2018-08-18 19:57:36 +02:00
Bartosz Taudul
59293b1850
Enable support for restrict time in call stack tree.
2018-08-18 19:44:29 +02:00