rem: printf("%03ld:", level);
add: printf("%03ld (%p):", level, &element);
context: dump(Element &element, int32 level = 0){	printf("%03ld:", level);	for (int32 i = 0; i < level; i++)		printf("  ");	if (RTF::Header *header = dynamic_cast<RTF::Header *>(&element)) {		printf("<RTF header, major version %ld>\n", header->Version());	} else if (RTF::Command *command = dynamic_cast<RTF::Command *>(&element)) {		printf("<Command: %s", command->Name());		if (command->HasOption())			printf(", Option %ld", command->Option());		puts(">");	} else if (RTF::Text *text = dynamic_cast<RTF::Text *>(&element)) {		printf("<Text>");		puts(text->String());	} else if (dynamic_cast<RTF::Group *>(&element) != NULL)		puts("<Group>");	if (RTF::Group *group = dynamic_cast<RTF::Group *>(&element)) {		for (uint32 i = 0; i < group->CountElements(); i++)			dump(*group->ElementAt(i), level + 1);	}}