mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-26 22:03:35 -06:00
ide: PDB debugger final touches
This commit is contained in:
parent
96eeef609d
commit
93ce2600f6
7 changed files with 998 additions and 25 deletions
85
reference/DbgScripts/DbgScripts.cpp
Normal file
85
reference/DbgScripts/DbgScripts.cpp
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
class MyString {
|
||||
int len;
|
||||
union {
|
||||
char *ptr;
|
||||
char data[16];
|
||||
};
|
||||
|
||||
public:
|
||||
MyString(const char *s) {
|
||||
len = strlen(s);
|
||||
if(len < 16)
|
||||
memcpy(data, s, len + 1);
|
||||
else {
|
||||
ptr = new char[len + 1];
|
||||
memcpy(ptr, s, len + 1);
|
||||
}
|
||||
}
|
||||
|
||||
~MyString() {
|
||||
if(len >= 16)
|
||||
delete []ptr;
|
||||
}
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class MyArray {
|
||||
T *begin;
|
||||
T *end;
|
||||
|
||||
public:
|
||||
MyArray(int n) { begin = new T[n]; end = begin + n; }
|
||||
~MyArray() { delete begin; }
|
||||
|
||||
T& operator[](int i) { return begin[i]; }
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class MyIndirectArray {
|
||||
int n;
|
||||
MyArray<T *> a;
|
||||
public:
|
||||
T& operator[](int i) { return *a[i]; }
|
||||
|
||||
MyIndirectArray(int n) : a(n), n(n) { for(int i = 0; i < n; i++) { a[i] = new T; } }
|
||||
~MyIndirectArray() { for(int i = 0; i < n; i++) { delete a[i]; } }
|
||||
};
|
||||
|
||||
template <class K, class V>
|
||||
class MyMap {
|
||||
MyArray<K> keys;
|
||||
MyArray<V> values;
|
||||
|
||||
public:
|
||||
MyMap(int n) : keys(n), values(n) {}
|
||||
|
||||
void Set(int i, K key, V value) { keys[i] = key; values[i] = value; }
|
||||
};
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
MyString short_string("Hello world!");
|
||||
MyString long_string("This is a very long string!");
|
||||
|
||||
MyArray<String> a(3);
|
||||
a[0] = "zero";
|
||||
a[1] = "one";
|
||||
a[2] = "two";
|
||||
|
||||
MyIndirectArray<int> b(4);
|
||||
b[0] = 1000;
|
||||
b[1] = 1001;
|
||||
b[2] = 1002;
|
||||
b[3] = 1003;
|
||||
|
||||
MyMap<String, int> m(3);
|
||||
m.Set(0, "zero", 0);
|
||||
m.Set(1, "one", 1);
|
||||
m.Set(2, "two", 2);
|
||||
|
||||
LOG("BREAKPOINT");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue