<commit_before>#ifndef _DEBUGGER_H_
#define _DEBUGGER_H_

#include <boost/signal.hpp>
#include "win32/MDIFrame.h"
#include "ELFView.h"
#include "FunctionsView.h"
#include "ThreadsViewWnd.h"
#include "DebugView.h"
#include "../PS2VM.h"

class CDebugger : public Framework::Win32::CMDIFrame, public boost::signals::trackable
{
public:
									CDebugger(CPS2VM&);
	virtual							~CDebugger();
	HACCEL							GetAccelerators();
	static void						InitializeConsole();

protected:
	long							OnCommand(unsigned short, unsigned short, HWND);
	long							OnSysCommand(unsigned int, LPARAM);
	long							OnWndProc(unsigned int, WPARAM, LPARAM);

private:
	enum DEBUGVIEW
	{
		DEBUGVIEW_EE	= 0,
		DEBUGVIEW_VU0,
		DEBUGVIEW_VU1,
		DEBUGVIEW_IOP,
		DEBUGVIEW_MAX,
	};

	void							RegisterPreferences();
	void							UpdateLoggingMenu();
	void							UpdateTitle();
	void							LoadSettings();
	void							SaveSettings();
	void							SerializeWindowGeometry(Framework::Win32::CWindow*, const char*, const char*, const char*, const char*, const char*);
	void							UnserializeWindowGeometry(Framework::Win32::CWindow*, const char*, const char*, const char*, const char*, const char*);
	void							CreateAccelerators();<commit_msg>Use signals2 trackable system in CDebugger instead of the old one (prevents some crashes).<commit_after>#ifndef _DEBUGGER_H_
#define _DEBUGGER_H_

#include "win32/MDIFrame.h"
#include "ELFView.h"
#include "FunctionsView.h"
#include "ThreadsViewWnd.h"
#include "DebugView.h"
#include "../PS2VM.h"

class CDebugger : public Framework::Win32::CMDIFrame, public boost::signals2::trackable
{
public:
									CDebugger(CPS2VM&);
	virtual							~CDebugger();
	HACCEL							GetAccelerators();
	static void						InitializeConsole();

protected:
	long							OnCommand(unsigned short, unsigned short, HWND);
	long							OnSysCommand(unsigned int, LPARAM);
	long							OnWndProc(unsigned int, WPARAM, LPARAM);

private:
	enum DEBUGVIEW
	{
		DEBUGVIEW_EE	= 0,
		DEBUGVIEW_VU0,
		DEBUGVIEW_VU1,
		DEBUGVIEW_IOP,
		DEBUGVIEW_MAX,
	};

	void							RegisterPreferences();
	void							UpdateLoggingMenu();
	void							UpdateTitle();
	void							LoadSettings();
	void							SaveSettings();
	void							SerializeWindowGeometry(Framework::Win32::CWindow*, const char*, const char*, const char*, const char*, const char*);
	void							UnserializeWindowGeometry(Framework::Win32::CWindow*, const char*, const char*, const char*, const char*, const char*);
	void							CreateAccelerators();
{'fraction_non_alphanumeric': 0.1143317230273752, 'fraction_numerical': 0.011272141706924315, 'mean_word_length': 4.187891440501044, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2067214', 'n_tokens_mistral': 1000, 'n_tokens_neox': 838, 'n_words': 198}