blob: 0bad1a2c0071ee6e74d8ad35eede1de1fc32c301 [file] [log] [blame]
NightStrike61e46112009-10-09 20:43:24 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
Jonathan Yong09f93702009-10-10 14:10:17 +00005<title>libmangle: Libmange</title>
NightStrike61e46112009-10-09 20:43:24 +00006<link href="tabs.css" rel="stylesheet" type="text/css"/>
7<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8</head>
9<body>
10<!-- Generated by Doxygen 1.6.1 -->
11<div class="navigation" id="top">
12 <div class="tabs">
13 <ul>
14 <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
NightStrike4bb4fce2009-10-10 12:22:24 +000015 <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
16 <li><a href="files.html"><span>Files</span></a></li>
NightStrike61e46112009-10-09 20:43:24 +000017 </ul>
18 </div>
19</div>
20<div class="contents">
Jonathan Yong09f93702009-10-10 14:10:17 +000021<h1>Libmange</h1><h3><dl class="rcs"><dt><b>Revision</b></dt><dd>1467</dd></dl>
22</h3><dl class="author"><dt><b>Author:</b></dt><dd>The mingw-w64 Dev Team </dd></dl>
23<dl class="version"><dt><b>Version:</b></dt><dd>1.0 </dd></dl>
24<h2><a class="anchor" id="intro_sec">
25Introduction</a></h2>
26<p>Libmangle is library for translating C++ symbols produced by Microsoft Visual Studio C++ suite of tools into human readable names. </p>
27<h3><a class="anchor" id="info_subsec">
28Name Mangling</a></h3>
29<p>Name mangling is a technique used by modern compilers to add addition information about a function, a structure or a datatype to a symbol name. Information can include call parameter type and return type, symbol namespace and etc. Often, the way the information is encoded in specific to a compiler vendor. </p>
30<h3><a class="anchor" id="cpp_subsec">
31C++ and Name Mangling</a></h3>
32<p>Languages such as the C++ language do not define a standard name decoration scheme, most often code produced by one compiler is also incompatible with another C++ compiler ABI wise. Name mangling prevents accidentally linking to code meant for another compiler. </p>
33<h3><a class="anchor" id="decde_subsec">
34Deciphering Mangled Names</a></h3>
35<p>Libmangle allows symbol names on objects created by Microsoft Visual C++ tools to be decoded into human readable names. In addition to easing debugging, it also allows the possibility of non-MSVC tools to examine the objects. </p>
36<h3><a class="anchor" id="external_subsec">
37External Links</a></h3>
38<p>For more information, see: <a href="http://en.wikipedia.org/wiki/Name_mangling">http://en.wikipedia.org/wiki/Name_mangling</a> </p>
39<h2><a class="anchor" id="install_sec">
40Installation</a></h2>
41<p>Use the shell script "configure" and pass "--help" for library build and install options. </p>
42</div>
NightStrike4bb4fce2009-10-10 12:22:24 +000043<hr size="1"/><address style="text-align: right;"><small>Generated on 10 Oct 2009 for libmangle by&nbsp;
NightStrike61e46112009-10-09 20:43:24 +000044<a href="http://www.doxygen.org/index.html">
45<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
46</body>
47</html>