What is the meaning of "Symbol Files" in WinDbg? - windows-phone-8

I have to understand my application's crashes from stack trace WPDEV. I followed up this link but didn't understand Step 6 "Symbol File Path". What is that?
Thanks.

Symbol files help you debug by (among other things) providing names for functions in call stacks rather than just byte offsets into a DLL. Read these pages of documentation to fully understand what a symbol file is and how helpful they can be while debugging.
The symbol file path is the local folder(s) on disk or remote symbol server URL(s) where the symbol files are retrieved from. Microsoft and other organizations typically make available a symbol server where you can download the symbol files for any library they distribute.
Windbg and Visual Studio use this path and automatically figure out which symbols to download based on the libraries that are loaded in the process being debugged. They are then (usually) cached locally to avoid downloading them repeatedly.

Related

How can I run binary files directly in windows?

I have a totally safe file that is a small executable program in the .out format. Being a windows user I was unable to run it, so I used a binary viewer software to open the file as pure binary code. I'm assuming I should be able to run it now, as binary code runs everywhere regardless of OS. I was just wondering how I could do this?
If your executeable file is compiled and linked for windows, you need to rename it to: name.out -> name.exe or name.com depending on type of executeable.

adding files to all platforms of a cocos2d-x project

This is a very basic question, but I have not been able to find the answer anywhere.
I just got Cocos 2Dx 3.3, made a new project and built the HelloWorld scene that was generated.
It generated projects for all platforms, but I am currently compiling and running the Mac project using XCode.
I can easily add new files using XCode, but of course it only adds it to my XCode Project. I would have expected a way to automatically modify all projects at once to add files or change compiler settings. I saw that there is a CMake file, probably used for command line compilation, but I cannot find a way to use that to regenerate the projects for all platforms.
Is it possible to automatically add a file to all platforms? Maybe it is possible to modify the template directory os Cocos and use the cocos new command line to recreate the project from scratch?
Or is it better to do all that manually?
Such an automation would imply parsing of a project file, finding list of relevant files and then changing all the dozen of project files. Which is hell of the work.
Even if it was implemented, how would this implementation decide which project file is a main one? (to get filelist from) And if your projects all have different lists of files? This would need merging etc. etc.
For now cocos new only copies files from one place to another. Frankly, Cocos2d-x have much more serious problems to solve, so I don't think this feature will ever be implemented.
However, you could customize project files/folders to your needs to make process of adding files more or less convenient and sometimes even automatic. Here are some clues:
It is easy to change Android and Linux Makefiles so they will pick up all the source files from a specified folder. Just use wildcards. Resource files are picked up by default.
For Visual Studio solutions (Win32, Win8, WinPhone) you could enable "Show all files" to see all files that either added or not. Unfortunately you can only see files down in the folder tree relative to project folder. To see Classes folder, make a symlink (link /j) of a Classes folder near .vcxproj file. You'd better don't copy/move project folder after it. And don't forget to add this linked folder to ignore list of your versioning system, or you will end up with duplicated files. Resource files are picked up by default for Windows projects.
I am not aware of any solution for XCode project, so you basically stuck with manual source file addition. Which is most annoying among all platforms. However it can pick up resource folders with all files.
Anyway, I would be glad if someone would proof me wrong and would write some kind of script to solve this problem (and also to change project name, company id, automatic versioning, etc.). I believe it could be done more or less reliably with, let's say Python and some regex magic. At least until project file formats will change.

Driver could not find compatible graphics hardware

I was installed CUDA 4 on my laptop (Dell - Vostro 3500) and started to write CUDA programs. But I got an error: driver is not compatible with this versios of CUDA.
So I decided to update my GPU driver (GPU: Nvidia GeForce 310M) and downloaded the driver from Nvidia's site. But when I want to insall the driver, see this error:
NVIDIA Intaller cannot continue
This graphics driver could not find compatible graphics hardware.
I tried 301.42 , 301.32 , 275.33 and 270.81 versions of Nvidia GPU drivers.
My friend installed 275.33 on his laptop with GeForce 310M on an Asus device.
Finally I found my answer with the help of Ben Stewart.
I hacked the INF file in this way:
Go here.
At the second part (NVIDIA Video Drivers and Tools) select suitable part. For example select 29X for 296.10.
Select appropriate part for your downloaded driver and Windows version.
In this page download INF file.
Replace the INF file with INF in the Display.Driver folder at driver unzip location (for example, C:\NVIDIA\DisplayDriver\296.10\WinVista_Win7_64\International\Display.Driver)
Set up the driver!
I had the same problem recently running Windows 7 on an iMac and managed to hack the nv_disp.inf file on version 301.42 to get it to install fine. Basically, you need to add an identifier from your graphics card to the inf file and away she goes. Not to hard.
Here's how I did it.
First, we need the identifier from your graphics card. Open Device Manager and bring up the property box for your graphics card in Display adapters. In the "Details" tab you will find a drop down box, open it and select "Device Instance Path"; you should be able to right click on the value in the field below and copy it.
Then find the temporary folder that the driver setup was extracted to when you ran it previously. For me it was "C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64" - if you can't find it, just run the setup again and note where the installer extracts itself. The file we need to edit is located in the Display.Driver directory, and it's called nv_disp.inf. Open this in Notepad or your favorite text editor.
Now we need to modify the string you have copied and add it to this file.
If you scroll about 15% of the way down you will find a heading similar to [NVIDIA_SetB_Devices.NTamd64.6.0]. This is the start of Nvidia's list of supported devices.
If you paste your device instance path here you will probably notice that the first 21 or so characters of your device path are similar to the last 21 on the proceeding few hundred lines. Something like PCI\VEN_10DE&DEV_0240. You can delete the rest of the text you have copied in.
The devices are organised into groups, so it's probably best to search for a line that is similar to yours in the last four numbers and use this as a template for creating the entry.
You want to use this information to create an entry that looks like the others that are already here.
I modified the line:
%NVIDIA_DEV.0868% = Section005, PCI\VEN_10DE&DEV_0868
with the identifier PCI\VEN_10DE&DEV_0869 to be:
%NVIDIA_DEV.0869% = Section005, PCI\VEN_10DE&DEV_0869
Note that the four-digit number near the beginning of the line matches the number at the end.
Save the document over the original nv_disp.inf, then run setup.exe from the already extracted folder. If you run the file you downloaded again, it will just extract again and overwrite your changes.
Are you downloading the notebook drivers from http://nvidia.com/drivers?
If you were using the notebook drivers, then it is likely that NVIDIA didn't include your GeForce 310M in the INF file for the latest drivers. You can hack at the INF files yourself to fix this. It is not simple, but can be done by googling for it and carefully reading certain forums where others have hacked at the INF files themselves. No fun.

How to generate SWF from FLA using command line on Ubuntu Server?

I have a situation where I need to generate SWF from the FLA that user uploads on to the server. We use python and bash scripts, and work on Ubuntu Server 10.04 (64bit), any help on how to generate the SWF would be a great help.
Thanks.
Flash needs Flash IDE for compilation.
You probably can compile code using flex AS3 compiler on linux, but if there are graphical elements in Flash, you cannot compile them.
However, we had a similar situation, which we fixed by installing Flash in a MAC OS X Snow Leopard(10.6) and then wrote some php, some shell script, some applescript and made a command line compilation mechanism for AS3.
Mac OS X is a unix based os, so the command line is similar to any other unix. it comes with built in php, so you don't have to install anything.
Basically using script we dynamically generate something called .jsfl file. the jsfl contains the details of the .fla that needs to be compiled. these jsfl files can be executed by Flash IDE. so we invoke the flash IDE and pass on the generated .jsfl file. (http://gskinner.com/blog/archives/2004/08/jsfl_fla_batch.html)
This gskinner process works in windows also, but using mac we can make it command line. so that users can just ssh to the mac and execute the command to build the file.
FLA file format has changed significantly in the latest version of Flash. New FLAs are archives containing source files and assets, so you might be able to write a script unpacking a FLA and assembling an SWF from it. Prior versions of FLA contained proprietary format, not documented and there were no tools to process it in an automatic fashion, not on Linux for certain.
Depending on ActionScript version and your requirement to resource handling (by resources I mean images, fonts, sound tracks, videos etc) there are several options available:
Flex SDK, the material found in the blog post #ntidote refers to is somewhat dated, but it's OK / should work. You would need to consult MXMLC usage documentation to find out all available options (and some new required ones, not covered in the blog post). This is what you can do, if your goal is to compile AS3. This does not include video transcoding and you might find it challenging to embed vector graphics. MXMLC is, however, capable of compiling a large subset of SVG. It can also compile FXG - a new interchange graphic format that can describe vector shapes and text.
ActionScript 2 can also be compiled, but Flex doesn't offer a compiler for that. There is a very good, in fact a much better than the one written by Adobe, compiler for AS2: http://tech.motion-twin.com/mtasc.html .
There are other tools that are capable of generating SWFs - all depends on what exactly you need to do. Here's a good collection of different utilities: http://www.swftools.org/
Haxe is a whole other programming language that can compile to SWF. It also has its own linkers and ways of managing resources. http://haxe.org/
There is this project, which allows you to compile complex vector graphics and even animations from XML descriptions: http://code.google.com/p/hxswfml/

Seeking a compact format for HTML ebooks for offline reading under Linux

I have a netbook running Linux and a large collection of computer books and reference material as HTML. I'd like some compact way of storing these books which can be browed without unpacking them first. This would save space and reduce wear on my small SSD.
If there was some way to convince Firefox to browse files contained in ZIP file, this would be ideal. (I know iCab (Mac) had a web archive format that worked this way.) Perhaps a Firefox plugin? A small web server that can serve directly from ZIP files? Some magic FUSE module? Does anyone have any ideas?
On my PDA (which the netbook is largely replacing) I used iSilo for this, but it's not available for Linux, its conversions are lossy and it costs money.
There is the FUSE zip thing here :
http://code.google.com/p/fuse-zip/
Gvfs should also support zip files.
Calibre might help (convert to a compressed format, manage, view e-books).
You can use OpenOffice.org to open the html pages, and then save them as OO documents. OO documents are essentially a zip files.
Another option is to use OO to save as pdf.
You can even do this from a command line using this OO macro.
Same with AbiWord - you can use it on commandline to convert.
In the AbiWord example there is shown how to convert all files in a directory to a desired format (pdf). Then you can use pdftools to merge all pages in one document.
Also, I do not know what windows manager your laptop has, but if it is KDE, konqueror (the file and web browser for KDE) opens web pages from inside a zip file w/o any problem.
Most probably Gnome's Nautilus can do this as well (I have no Gnome here to test).
Have you ever tried to open a zip file with whatever file manager you have, and then click on a web page inside it?