English 中文(简体)
Tips for debugging a made-for-linux application on windows?
原标题:

I m trying to find the source of a bug I have found in an open-source application.

I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the disassembly where the issue is.

I have tried three different debuggers (WinDbg, OllyDbg, and VisualStudio) and each pretty much gives me the same information.

So, given that I have the source code, what can I do to debug a live application? If the application was written in C, how can I inspect the data structures?

Do any of the debuggers listed above support loading of gcc s debugging symbols?

It feels to me like I m doing something way-wrong. I really don t want to try to debug this app in optimized assembly...

问题回答

there is some port of GDB from cygwin or MinGW why don t your try with gdb directly?

The simple answer is: if you can t run it, the best any tool will be able to do is debug compile-time errors. That s even if you have the source.

From you description, it is evident that the bug you re trying to root out is a run-time bug (not compile time), so you will have be able to actually run it. If your application cannot run in Windows, than you shoudln t be attempting to debug it from windows.

That being said, using something like cygwin, as RageZ has suggested, is probably your best bet. Then just debug the program like you would in linux.

HTH

How did you build it on Windows?

Could you perhaps try building with MSVC itself? Then, you can build a debug version and debug it easily - the graphical debugger of MSVC is pretty good.

If everything else fails you still can put lots of logging in the code around where you have identified the bug, and the best in this is that this works even in release mode. Just don t forget to remove the logging lines when you ve fixed the bug.





相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签