* Added test application for the GCC2 demangler.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28384 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -25,6 +25,7 @@ SEARCH on [ FGristFiles
|
||||
|
||||
SubInclude HAIKU_TOP src tests add-ons kernel bus_managers ;
|
||||
SubInclude HAIKU_TOP src tests add-ons kernel busses ;
|
||||
SubInclude HAIKU_TOP src tests add-ons kernel debugger ;
|
||||
# SubInclude HAIKU_TOP src tests add-ons kernel disk_scanner ;
|
||||
SubInclude HAIKU_TOP src tests add-ons kernel drivers ;
|
||||
SubInclude HAIKU_TOP src tests add-ons kernel file_systems ;
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
SubDir HAIKU_TOP src tests add-ons kernel debugger ;
|
||||
|
||||
UsePrivateKernelHeaders ;
|
||||
UsePrivateHeaders shared ;
|
||||
|
||||
SubDirHdrs $(HAIKU_TOP) src add-ons kernel debugger demangle ;
|
||||
|
||||
SimpleTest gcc2_demangle_test : gcc2_demangle_test.cpp ;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright 2008, Axel Dörfler, [email protected].
|
||||
* This file may be used under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
#define kprintf printf
|
||||
|
||||
#include "gcc2.cpp"
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
for (int i = 1; i < argc; i++) {
|
||||
bool isObjectMethod;
|
||||
char name[64];
|
||||
const char* symbol = demangle_symbol(argv[i], name, sizeof(name),
|
||||
&isObjectMethod);
|
||||
if (symbol == NULL) {
|
||||
printf("%s: cannot be parsed\n", argv[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("%s (%s method)\n", symbol, isObjectMethod ? "object" : "class");
|
||||
|
||||
uint32 cookie = 0;
|
||||
int32 type;
|
||||
size_t length;
|
||||
while (get_next_argument(&cookie, argv[i], name, sizeof(name), &type,
|
||||
&length) == B_OK) {
|
||||
printf("name \"%s\", type %.4s, length %lu\n", name, (char*)&type,
|
||||
length);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user