News:

Download Pelles C here: http://www.smorgasbordet.com/pellesc/

Main Menu

PEStripW and .dbg file

Started by TimoVJL, August 20, 2010, 12:36:25 PM

Previous topic - Next topic

TimoVJL

PellesC IDE debugger support .dbg files.

With this tool you can take away debug information from exe

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <imagehlp.h>

#pragma lib "imagehlp.lib"

TCHAR szAppName[] = "PEStripW";
/*
BOOL SplitSymbols(PSTR ImageName, PSTR SymbolsPath, PSTR SymbolFilePath, DWORD Flags);
SPLITSYM_EXTRACT_ALL, SPLITSYM_REMOVE_PRIVATE, SPLITSYM_SYMBOLPATH_IS_SRC
*/

int LastError(HWND hWnd)
{
LPVOID lpMsgBuf;

FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);

// Display the string.
MessageBox( hWnd, lpMsgBuf, szAppName, MB_OK|MB_ICONERROR );

// Free the buffer.
LocalFree( lpMsgBuf );
return 0;
}

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
int nLen;
TCHAR szTmp[260], szDbgFile[260];

if (!*lpCmdLine) {
MessageBox(0, TEXT("usage: PEStrip.exe file"), szAppName, MB_OK);
return 1;
}
//wsprintf(szDbgFile, "%s.dbg", lpCmdLine);
lstrcpy(szDbgFile, lpCmdLine);
nLen = lstrlen(szDbgFile);
lstrcpy(&szDbgFile[nLen-3], TEXT("dbg"));
if (SplitSymbols(lpCmdLine, NULL, szDbgFile, SPLITSYM_EXTRACT_ALL)) {
wsprintf(szTmp, TEXT("%s stripped to %s"), lpCmdLine, szDbgFile);
MessageBox(0, szTmp, szAppName, MB_OK);
} else {
//wsprintf(szTmp, "%s: Error %d", lpCmdLine, GetLastError());
//MessageBox(0, szTmp, szAppName, MB_OK | MB_ICONERROR);
LastError(0);
}
return 0;
}

May the source be with you

saliha

To generate a .DBG file in this format, you can use REBASE.EXE, which is provided with the Win32 SDK.
Please see the Win32 SDK documentation for more details.

TimoVJL

PellesC have porebase.exe for that too.
May the source be with you