Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
One of the drivers I'm developing has caused a BSOD. Unfortunately a dump file was not created since it was not configured / low resources. I was trying to reproduce this crash but no luck so far.
Is there any way to get some info using WinDbg or any other tool?
I have this information:
A screenshot of the BSOD
The .sys file.
Its pdb
The source code
The machine it was crashed on
I have everything except the dump itself.
Your help will be much appreciated.
As I said above, no dump (/minidump) exists. This is the actual problem.
For this specific crash, I know I won't be able to get the stack. Just getting the specific line of code will be good enough. Because the BSOD contains the module's address, it seems like there should be a way to detect which line exactly is it. As I mentioned above, I do have the .sys file, the pdb and the source code.
This is the specific code taken from MSDN: SYSTEM_SERVICE_EXCEPTION.
How can I know from there what was the specific line? and/or the specific exception raised?
You have the crash address, want to know the source line?
Fire up kd or windbg, disasm that address and code before it. Find the function entry point (where it adjust the stack) and you can now lookup the symbol table. From there you disasm again and compare the source.
Sorry, I guess you need to read some asm. I know no better way.
If you are lucky you will have minidump in C:\windows, so check if its there.
If its available open it in Windbg and analyse.
You don't need to configure for low resource to create dump, refer this link http://support.microsoft.com/kb/254649 on how to setup windows to create dump files. Create full dump if you want to debug your driver.
Coming back to your question to analyse issue:
Refer bugcheck reference here to understand your BSOD error. http://msdn.microsoft.com/en-us/library/windows/hardware/hh406232(v=vs.85).aspx
Depending upon what BSOD you got, check any parameters or other information to get possible cause.
But its not likely that you will reach to good conclusion with information you have. You will need dump file to really understand the issue.
Related
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 4 years ago.
Improve this question
I'm using a simple pthreads process-shared mutex in a shared memory segment to coordinate multiple server instances.
Code is straightforward:
On startup server attaches to shared memory segment if it exists, or creates it if it doesn't:
shm_open(), mmap(MAP_SHARED) etc.
This works very well while testing, but once deployed after a while i come across cases where server instances don't coordinate at all. I can replicate this by deleting the shared memory segment after a server has started: future servers instances will create/use a new segment but the existing one is stuck with the old segment nobody uses so in effect it's isolated from the rest ...
So my guess is the shared memory segment in /dev/shm is getting deleted somehow, and not by me. This is the only thing that makes sense... What is going on here ??
Running debian with linux 4.9.
Ah, looks like systemd is the culprit:
From dev-shm-files-disappearing:
After hours of searching and reading, I found the culprit. It's a setting for systemd. The /etc/systemd/logind.conf contains default configuration options, with each of them commented out. The RemoveIPC option is set to yes by default. That option tells systemd to clean up interprocess communication (IPC) for "user accounts" who aren't logged in. This does not affect "system accounts"
In my case, the files and directories were being created for a user account, not a system account.
There are two possible solutions:
Create the files with/for a system user -- a user created with the system option (adduser -r or adduser --system)
Edit /etc/systemd/logind.conf, uncomment the line RemoveIPC=yes, change it to RemoveIPC=no, save, and reboot the system
In my case, I went with option #2 because the user was already created.
See also this post on postgresql mailing list.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 5 years ago.
Improve this question
We have frequent computer-lab classes where we need to submit assignments over a local network. We have to submit assignments before the class finishes. The problem is, the destination IP accepts only about 15 maximum connections at a time. Some students like to lobby that for some reason i.e. they keep their conection open and do not allow others to connect.To combat this problem I use a simple batch file as follows:
:1
start/wait \\10.0.120.5\Shared_\Assignments\
goto 1
Although it is rudimentary, it works pretty well for my purposes as it connects to an open spot as soon as it is available. But there are some problems:
If the connection is full, its displays "This computer has reached maximum number of connection" and displays a dialog box. Start/wait being start/wait, naturally waits it out. I'd like for it to skip this and not show me a dialog box if possible.
Right now, If I'm connected, I need to kill the task with taskmanager. I would like this step to be automatic too. Can I have it so that the batch terminates as soon as the connection is made? Previously, I used an anchor-file(a file I put myself in the teacher's IP in a different folder) to check whether or not it was present to have the batch process know that the connection has been made. This is no longer possible as the server has changed to accept only files in certain locations where uploading such anchor-file is not an option. Surely, there must be a more elegant solution to this.
My core question is: Is it possible to utilize all the parameters provided by Start to achieve this? Or do I need a plethora of conditionals?
Here's the pretty obvious solution I was looking for!
Tried in the next Lab Class and it turns out I didn't need to target anchor files after all (Ref: 2nd part of Some Problems here). Sometimes the simple solutions are right there staring back at you.
:1
start/wait \\10.0.120.5\Shared_\
if not exist "\\10.0.120.5\Shared_\" goto 1
exit
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
The vx570 has a USB port that I know you can use as a software download vector, but when I tried it, I was unable to initiate the download process. There is nothing in system mode that would allow me to to execute a program like DDL, which we use for serial (RS232) downloads. What do I need to do to initiate the download and how do I specify where the files should go?
Yes, this is actually pretty simple.
1) Create a folder for each file group you want to put data in. So if you want to put something into RAM in file group 3, then name the folder 3. If you want to put something into FLASH in file group 3, then name it F3. You can mix at match at will so if you are going to load your program in to file group 3 and it has both RAM and FLASH components, then you would have a 3 folder AND an F3 folder. If you were also loading VMAC, then you would ALSO have a 1, F1, 15 and F15.
2) Package all this stuff up into a .zip file. You MUST name it Verifone.zip Put this file onto your USB thumb drive at the root level.
3) Go into system mode and press '#' to start a full download into group 1.
4) Insert the thumb drive into the USB slot on the 570. The terminal will see that there is a file called Verifone.zip and will guide you through the rest.
There is one potentially tricky thing about all of this and that is the config.sys variables. Since you aren't using DDL.exe, you don't have a way to set them during the download. You CAN, however, load the config.sys file directly to the terminal as part of the download. The problem is that it is a compressed format file, so if you were to look at it in notepad, it would contain a bunch of junk like äåöíáîæéì. The only way I know of to generate this file is to use the "Direct Upload Utility" as found on VeriFone's DevNet site. As it turns out, it will also do the rest of step 1 (above) for you, as well.
1) Download DUL from DevNet onto your computer
2) Using DDL.exe (or whatever you have been using to set up terminals in the past), configure a terminal to be in the exact state that you want your future downloads to be in.
3) Connect the terminal to your computer and run DUL. Use the * wildcard to specify that you want all files to upload to your computer. See DUL's documentation for more details.
4) Optional: DUL's naming convention is to prefix RAM folders with I and use 2 digit group numbers. I suspect this will work, but I always change mine to single digits and drop the I for RAM groups.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I have a few database files with .db extension and I want to take a peek. However I don't know what program should I use to open the files. I've found a similar quesiton that says checking the header of the db file could reveal the name of the database-program/type.
What I've found is "FLDB".
Anyone have any clue what kind of database file can this be?
Edit:
Trying to give more hint:
This is a program of a car navigation system and it knows 8 languages. I'm trying to localize it to my language. There are lots of .db and two .gdb files witch (probably) contains this data.
I don't think there is a way to tell which program to use from just the .db extension. It could even be an encrypted database which can't be opened. You can MS Access, or a sqlite manager.
Edit:
Try to rename the file to .txt and open it with a text editor. The first couple of words in the file could tell you the DB Type.
If it is a SQLite database, it will start with "SQLite format 3"
You can use a tool like the TrIDNet - File Identifier to look for the Magic Number and other telltales, if the file format is in it's database it may tell you what it is for.
However searching the definitions did not turn up anything for the string "FLDB", but it checks more than magic numbers so it is worth a try.
If you are using Linux File is a command that will do a similar task.
The other thing to try is if you have access to the program that generated this file, there may be DLL's or EXE's from the database software that may contain meta information about the dll's creator which could give you a starting point for looking for software that can read the file outside of the program that originally created the .db file.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
So i was just playing with files like opening with hex editor and doing some stuff. and i found one thing...
i can access the data stored in a file but where are the metadata like file property, time stamps and other things are stored?
it's definitely not stored inside the file but where it is? is it stored somewhere in HardDrive filesystem or anywhere else? i also noticed that the NTFS file system can also store permissions like i can use dos command cacls (or icacls) on NTFS filesystem but it does not support filesystems like FAT32.
and if it is on the harddrive then we can change the metadata (file properties hidden,archive etc) using linux (am i right)?
please can someone explain or tell me where i can find the right information about this topic.
Metadata stored separately from file data. Usually in structures called inode, but its depends on filesystem used. On Linux, you work with meta data through API provided through function chmod(2), chown(2) etc. Number in parentheses is section number, you read about these with man command: man -s2 chown. For command-line, linux have commands with similar names (chmod, chown, touch, etc).
Yes, the filesystem itself allocates additional space for storing metadata on the disk.
All operating systems give you an API that allows changing the metadata of files (timestamps, attributes, name, etc.).
and you can by opening the appropriate device file for a partition or hard disk (e.g. "\.\C:") and reading/writing to it. When you know the details of the file system, you can figure out the metadata location(s) for a specific file on the disk.